summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/release/build/newsrc.bat1
-rw-r--r--docs/release/build/uprel.bat2
-rw-r--r--docs/release/hbmame213s.rar (renamed from docs/release/hbmame212s.rar)bin3631233 -> 3649574 bytes
-rw-r--r--docs/release/scripts/build/complay.py7
-rw-r--r--docs/release/scripts/genie.lua12
-rw-r--r--docs/release/scripts/src/bus.lua20
-rw-r--r--docs/release/scripts/src/cpu.lua48
-rw-r--r--docs/release/scripts/src/devices.lua10
-rw-r--r--docs/release/scripts/src/emu.lua9
-rw-r--r--docs/release/scripts/src/formats.lua24
-rw-r--r--docs/release/scripts/src/machine.lua42
-rw-r--r--docs/release/scripts/src/mame/frontend.lua2
-rw-r--r--docs/release/scripts/src/osd/modules.lua1
-rw-r--r--docs/release/scripts/src/video.lua36
-rw-r--r--docs/release/scripts/target/hbmame/hbmame.lua2
-rw-r--r--docs/release/scripts/target/mame/arcade.lua21
-rw-r--r--docs/release/scripts/target/mame/dummy.lua2
-rw-r--r--docs/release/scripts/target/mame/mess.lua36
-rw-r--r--docs/release/scripts/target/mame/nl.lua2
-rw-r--r--docs/release/scripts/target/mame/tiny.lua2
-rw-r--r--docs/release/scripts/target/mame/virtual.lua2
-rw-r--r--docs/release/src/emu/emuopts.cpp37
-rw-r--r--docs/release/src/emu/emuopts.h4
-rw-r--r--docs/release/src/frontend/mame/info.cpp785
-rw-r--r--docs/release/src/hbmame/drivers/cinemat.cpp88
-rw-r--r--docs/release/src/hbmame/drivers/cps1mis.cpp503
-rw-r--r--docs/release/src/hbmame/drivers/cps2mis.cpp33
-rw-r--r--docs/release/src/hbmame/drivers/jrpacman.cpp2
-rw-r--r--docs/release/src/hbmame/drivers/kof2002.cpp35
-rw-r--r--docs/release/src/hbmame/drivers/kof96.cpp4
-rw-r--r--docs/release/src/hbmame/drivers/kof97.cpp45
-rw-r--r--docs/release/src/hbmame/drivers/kof98.cpp81
-rw-r--r--docs/release/src/hbmame/drivers/m92.cpp33
-rw-r--r--docs/release/src/hbmame/drivers/mhavoc.cpp73
-rw-r--r--docs/release/src/hbmame/drivers/midtunit.cpp39
-rw-r--r--docs/release/src/hbmame/drivers/mslug4.cpp25
-rw-r--r--docs/release/src/hbmame/drivers/mslug5.cpp48
-rw-r--r--docs/release/src/hbmame/drivers/neogeohb.cpp95
-rw-r--r--docs/release/src/hbmame/drivers/ngkofmisc.cpp26
-rw-r--r--docs/release/src/hbmame/drivers/pacman.cpp4
-rw-r--r--docs/release/src/hbmame/drivers/pgm.cpp390
-rw-r--r--docs/release/src/hbmame/drivers/polepos.cpp2
-rw-r--r--docs/release/src/hbmame/drivers/warriorb.cpp45
-rw-r--r--docs/release/src/hbmame/hbmame.lst378
-rw-r--r--docs/release/src/hbmame/includes/cps1.h1
-rw-r--r--docs/release/src/hbmame/includes/cps2.h1
-rw-r--r--docs/release/src/hbmame/includes/pacman.h1
-rw-r--r--docs/release/src/mame/video/decbac06.cpp20
-rw-r--r--docs/release/src/mame/video/midtunit.cpp1092
-rw-r--r--docs/release/src/osd/windows/winmain.cpp1
-rw-r--r--docs/release/src/osd/windows/winmain.h2
-rw-r--r--docs/release/src/osd/winui/hbmameui.rc4
-rw-r--r--docs/release/src/version.cpp2
-rw-r--r--makefile4
-rw-r--r--src/version.cpp2
55 files changed, 3425 insertions, 761 deletions
diff --git a/docs/release/build/newsrc.bat b/docs/release/build/newsrc.bat
index 38df5f27fb7..64a6ffa3c51 100644
--- a/docs/release/build/newsrc.bat
+++ b/docs/release/build/newsrc.bat
@@ -38,6 +38,7 @@ copy /Y %from%\src\mame\machine\mhavoc.cpp %to%\src\mame\machine
md %to%\src\mame\video
copy /Y %from%\src\mame\video\decbac06.cpp %to%\src\mame\video
+copy /Y %from%\src\mame\video\midtunit.cpp %to%\src\mame\video
md %to%\src\hbmame
xcopy /E /Y %from%\src\hbmame %to%\src\hbmame
diff --git a/docs/release/build/uprel.bat b/docs/release/build/uprel.bat
index 4c2208b3733..9b874a444de 100644
--- a/docs/release/build/uprel.bat
+++ b/docs/release/build/uprel.bat
@@ -1,6 +1,6 @@
\goto end
git fetch upstream
-git merge upstream/release0212
+git merge upstream/release0213
git checkout master
:end
pause
diff --git a/docs/release/hbmame212s.rar b/docs/release/hbmame213s.rar
index abed1630617..4578360deb0 100644
--- a/docs/release/hbmame212s.rar
+++ b/docs/release/hbmame213s.rar
Binary files differ
diff --git a/docs/release/scripts/build/complay.py b/docs/release/scripts/build/complay.py
index 3f2a0d8b6b5..72bdcfa01c8 100644
--- a/docs/release/scripts/build/complay.py
+++ b/docs/release/scripts/build/complay.py
@@ -460,9 +460,6 @@ class LayoutChecker(Minifyer):
self.checkTag(attrs['inputtag'], name, 'inputtag')
elif 'inputmask' in attrs:
self.handleError('Element %s has inputmask attribute without inputtag attribute' % (name, ))
- inputmask = self.checkIntAttribute(name, attrs, 'inputmask', None)
- if (inputmask is not None) and (0 == inputmask):
- self.handleError('Element %s has attribute inputmask "%s" is zero' % (name, attrs['inputmask']))
inputraw = self.checkIntAttribute(name, attrs, 'inputraw', None)
if (inputraw is not None):
if 'inputmask' not in attrs:
@@ -471,6 +468,10 @@ class LayoutChecker(Minifyer):
self.handleError('Element %s has inputraw attribute without inputtag attribute' % (name, ))
if ((0 > inputraw) or (1 < inputraw)):
self.handleError('Element %s attribute inputraw "%s" not in valid range 0-1' % (name, attrs['inputraw']))
+ inputmask = self.checkIntAttribute(name, attrs, 'inputmask', None)
+ if (inputmask is not None) and (0 == inputmask):
+ if (inputraw is None) or (0 == inputraw):
+ self.handleError('Element %s has attribute inputmask "%s" is zero' % (name, attrs['inputmask']))
self.handlers.append((self.objectStartHandler, self.objectEndHandler))
self.have_bounds.append(False)
self.have_orientation.append(False)
diff --git a/docs/release/scripts/genie.lua b/docs/release/scripts/genie.lua
index aea60a45cc5..b1d76df09bf 100644
--- a/docs/release/scripts/genie.lua
+++ b/docs/release/scripts/genie.lua
@@ -77,6 +77,16 @@ function precompiledheaders()
end
end
+function precompiledheaders_novs()
+ precompiledheaders()
+ if string.sub(_ACTION,1,4) == "vs20" then
+ --print("Disabling pch for Visual Studio")
+ flags {
+ "NoPCH"
+ }
+ end
+end
+
function addprojectflags()
local version = str_to_version(_OPTIONS["gcc_version"])
if _OPTIONS["gcc"]~=nil and string.find(_OPTIONS["gcc"], "gcc") then
@@ -486,7 +496,6 @@ configuration { "vs20*" }
"/bigobj",
}
flags {
- "NoPCH",
"ExtraWarnings",
}
if not _OPTIONS["NOWERROR"] then
@@ -1174,6 +1183,7 @@ configuration { "asmjs" }
}
linkoptions {
"-Wl,--start-group",
+ "-s ERROR_ON_MISSING_LIBRARIES=0"
}
archivesplit_size "20"
diff --git a/docs/release/scripts/src/bus.lua b/docs/release/scripts/src/bus.lua
index 2ca74db3c79..114633a97a4 100644
--- a/docs/release/scripts/src/bus.lua
+++ b/docs/release/scripts/src/bus.lua
@@ -1728,10 +1728,18 @@ if (BUSES["SS50"]~=null) then
files {
MAME_DIR .. "src/devices/bus/ss50/interface.cpp",
MAME_DIR .. "src/devices/bus/ss50/interface.h",
+ MAME_DIR .. "src/devices/bus/ss50/dc5.cpp",
+ MAME_DIR .. "src/devices/bus/ss50/dc5.h",
MAME_DIR .. "src/devices/bus/ss50/mpc.cpp",
MAME_DIR .. "src/devices/bus/ss50/mpc.h",
MAME_DIR .. "src/devices/bus/ss50/mps.cpp",
MAME_DIR .. "src/devices/bus/ss50/mps.h",
+ MAME_DIR .. "src/devices/bus/ss50/mps2.cpp",
+ MAME_DIR .. "src/devices/bus/ss50/mps2.h",
+ MAME_DIR .. "src/devices/bus/ss50/mpt.cpp",
+ MAME_DIR .. "src/devices/bus/ss50/mpt.h",
+ MAME_DIR .. "src/devices/bus/ss50/piaide.cpp",
+ MAME_DIR .. "src/devices/bus/ss50/piaide.h",
}
end
@@ -2125,12 +2133,16 @@ if (BUSES["A2BUS"]~=null) then
MAME_DIR .. "src/devices/bus/a2bus/agat840k_hle.h",
MAME_DIR .. "src/devices/bus/a2bus/agat_fdc.cpp",
MAME_DIR .. "src/devices/bus/a2bus/agat_fdc.h",
+ MAME_DIR .. "src/devices/bus/a2bus/nippelclock.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/nippelclock.h",
MAME_DIR .. "src/devices/bus/a2bus/ssprite.cpp",
MAME_DIR .. "src/devices/bus/a2bus/ssprite.h",
MAME_DIR .. "src/devices/bus/a2bus/ssbapple.cpp",
MAME_DIR .. "src/devices/bus/a2bus/ssbapple.h",
MAME_DIR .. "src/devices/bus/a2bus/transwarp.cpp",
MAME_DIR .. "src/devices/bus/a2bus/transwarp.h",
+ MAME_DIR .. "src/devices/bus/a2bus/4play.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/4play.h",
}
end
@@ -2141,10 +2153,14 @@ end
if (BUSES["A2GAMEIO"]~=null) then
files {
+ MAME_DIR .. "src/devices/bus/a2gameio/computereyes.cpp",
+ MAME_DIR .. "src/devices/bus/a2gameio/computereyes.h",
MAME_DIR .. "src/devices/bus/a2gameio/gameio.cpp",
MAME_DIR .. "src/devices/bus/a2gameio/gameio.h",
MAME_DIR .. "src/devices/bus/a2gameio/joystick.cpp",
MAME_DIR .. "src/devices/bus/a2gameio/joystick.h",
+ MAME_DIR .. "src/devices/bus/a2gameio/joyport.cpp",
+ MAME_DIR .. "src/devices/bus/a2gameio/joyport.h",
}
end
@@ -3116,6 +3132,8 @@ if (BUSES["CPC"]~=null) then
MAME_DIR .. "src/devices/bus/cpc/doubler.h",
MAME_DIR .. "src/devices/bus/cpc/transtape.cpp",
MAME_DIR .. "src/devices/bus/cpc/transtape.h",
+ MAME_DIR .. "src/devices/bus/cpc/musicmachine.cpp",
+ MAME_DIR .. "src/devices/bus/cpc/musicmachine.h",
}
end
@@ -3479,6 +3497,8 @@ if (BUSES["SPECTRUM"]~=null) then
MAME_DIR .. "src/devices/bus/spectrum/usource.h",
MAME_DIR .. "src/devices/bus/spectrum/uspeech.cpp",
MAME_DIR .. "src/devices/bus/spectrum/uspeech.h",
+ MAME_DIR .. "src/devices/bus/spectrum/wafa.cpp",
+ MAME_DIR .. "src/devices/bus/spectrum/wafa.h",
}
end
diff --git a/docs/release/scripts/src/cpu.lua b/docs/release/scripts/src/cpu.lua
index f49d8e48927..788e2cd3eb6 100644
--- a/docs/release/scripts/src/cpu.lua
+++ b/docs/release/scripts/src/cpu.lua
@@ -113,14 +113,6 @@ if (CPUS["ARCOMPACT"]~=null) then
MAME_DIR .. "src/devices/cpu/arcompact/arcompact.h",
MAME_DIR .. "src/devices/cpu/arcompact/arcompact_execute.cpp",
}
- 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
@@ -1683,34 +1675,34 @@ if (CPUS["M680X0"]~=null or _OPTIONS["with-tools"]) then
end
--------------------------------------------------
--- Motorola/Freescale dsp56k
---@src/devices/cpu/dsp56k/dsp56k.h,CPUS["DSP56156"] = true
+-- Motorola/Freescale DSP56156
+--@src/devices/cpu/dsp56156/dsp56156.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/dsp56156/dsp56156.cpp",
+ MAME_DIR .. "src/devices/cpu/dsp56156/dsp56156.h",
+ MAME_DIR .. "src/devices/cpu/dsp56156/dsp56mem.cpp",
+ MAME_DIR .. "src/devices/cpu/dsp56156/dsp56mem.h",
+ MAME_DIR .. "src/devices/cpu/dsp56156/dsp56pcu.cpp",
+ MAME_DIR .. "src/devices/cpu/dsp56156/dsp56pcu.h",
+ MAME_DIR .. "src/devices/cpu/dsp56156/dsp56def.h",
+ MAME_DIR .. "src/devices/cpu/dsp56156/dsp56ops.hxx",
}
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/dsp56dsm.h")
- table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/dsp56k/opcode.cpp")
- table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/dsp56k/opcode.h")
- table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/dsp56k/inst.cpp")
- table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/dsp56k/inst.h")
- table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/dsp56k/pmove.cpp")
- table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/dsp56k/pmove.h")
- table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/dsp56k/tables.cpp")
- table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/dsp56k/tables.h")
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/dsp56156/dsp56dsm.cpp")
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/dsp56156/dsp56dsm.h")
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/dsp56156/opcode.cpp")
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/dsp56156/opcode.h")
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/dsp56156/inst.cpp")
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/dsp56156/inst.h")
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/dsp56156/pmove.cpp")
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/dsp56156/pmove.h")
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/dsp56156/tables.cpp")
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/dsp56156/tables.h")
end
--------------------------------------------------
diff --git a/docs/release/scripts/src/devices.lua b/docs/release/scripts/src/devices.lua
index 79bcdec11d4..4940ccdaafd 100644
--- a/docs/release/scripts/src/devices.lua
+++ b/docs/release/scripts/src/devices.lua
@@ -54,6 +54,8 @@ function devicesProject(_target, _subtarget)
dofile(path.join("src", "bus.lua"))
+ pchsource(MAME_DIR .. "src/devices/machine/timer.cpp")
+
if #disasm_files > 0 then
project ("dasm")
uuid ("f2d28b0a-6da5-4f78-b629-d834aa00429d")
@@ -78,6 +80,14 @@ if #disasm_files > 0 then
disasm_files
}
+ for key,value in pairs(disasm_files) do
+ if string.endswith(value, ".cpp") then
+ --print("calling pchsource with " .. value)
+ pchsource(value)
+ break
+ end
+ end
+
if #disasm_dependency > 0 then
dependency(disasm_dependency)
end
diff --git a/docs/release/scripts/src/emu.lua b/docs/release/scripts/src/emu.lua
index 4e763996a2c..6ab5f100cba 100644
--- a/docs/release/scripts/src/emu.lua
+++ b/docs/release/scripts/src/emu.lua
@@ -259,6 +259,12 @@ files {
MAME_DIR .. "src/emu/video/rgbvmx.h",
}
+pchsource(MAME_DIR .. "src/emu/main.cpp")
+-- 3 files do not inlcude emu.h
+nopch(MAME_DIR .. "src/emu/emualloc.cpp")
+nopch(MAME_DIR .. "src/emu/attotime.cpp")
+nopch(MAME_DIR .. "src/emu/debug/textbuf.cpp")
+
dependency {
--------------------------------------------------
-- additional dependencies
@@ -306,6 +312,9 @@ includedirs {
files {
MAME_DIR .. "src/emu/drivers/empty.cpp",
}
+
+pchsource(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
index 5a5438a1694..6bb724e3e40 100644
--- a/docs/release/scripts/src/formats.lua
+++ b/docs/release/scripts/src/formats.lua
@@ -835,6 +835,18 @@ end
--------------------------------------------------
--
+--@src/lib/formats/uniflex_dsk.h,FORMATS["UNIFLEX_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["UNIFLEX_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/uniflex_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/uniflex_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
--@src/lib/formats/fm7_cas.h,FORMATS["FM7_CAS"] = true
--------------------------------------------------
@@ -1015,6 +1027,18 @@ end
--------------------------------------------------
--
+--@src/lib/formats/juku_dsk.h,FORMATS["JUKU_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["JUKU_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/juku_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/juku_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
--@src/lib/formats/jvc_dsk.h,FORMATS["JVC_DSK"] = true
--------------------------------------------------
diff --git a/docs/release/scripts/src/machine.lua b/docs/release/scripts/src/machine.lua
index 185ad28dc4d..c8fc03b7881 100644
--- a/docs/release/scripts/src/machine.lua
+++ b/docs/release/scripts/src/machine.lua
@@ -51,14 +51,20 @@ files {
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/microdrv.cpp",
+-- MAME_DIR .. "src/devices/imagedev/microdrv.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/picture.cpp",
+-- MAME_DIR .. "src/devices/imagedev/picture.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/wafadrive.cpp",
+-- MAME_DIR .. "src/devices/imagedev/wafadrive.h",
}
@@ -988,6 +994,18 @@ end
---------------------------------------------------
--
+--@src/devices/machine/ds17x85.h,MACHINES["DS17X85"] = true
+---------------------------------------------------
+
+if (MACHINES["DS17X85"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/ds17x85.cpp",
+ MAME_DIR .. "src/devices/machine/ds17x85.h",
+ }
+end
+
+---------------------------------------------------
+--
--@src/devices/machine/ds1994.h,MACHINES["DS1994"] = true
---------------------------------------------------
@@ -2249,6 +2267,18 @@ end
---------------------------------------------------
--
+--@src/devices/machine/pcf8584.h,MACHINES["PCF8584"] = true
+---------------------------------------------------
+
+if (MACHINES["PCF8584"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/pcf8584.cpp",
+ MAME_DIR .. "src/devices/machine/pcf8584.h",
+ }
+end
+
+---------------------------------------------------
+--
--@src/devices/machine/pcf8593.h,MACHINES["PCF8593"] = true
---------------------------------------------------
@@ -4094,3 +4124,15 @@ if (MACHINES["WTL3132"]~=null) then
MAME_DIR .. "src/devices/machine/wtl3132.h",
}
end
+
+---------------------------------------------------
+--
+--@src/devices/machine/vrender0.h,MACHINES["VRENDER0"] = true
+---------------------------------------------------
+
+if (MACHINES["VRENDER0"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/vrender0.cpp",
+ MAME_DIR .. "src/devices/machine/vrender0.h",
+ }
+end
diff --git a/docs/release/scripts/src/mame/frontend.lua b/docs/release/scripts/src/mame/frontend.lua
index c8f21daa4a6..b785785416e 100644
--- a/docs/release/scripts/src/mame/frontend.lua
+++ b/docs/release/scripts/src/mame/frontend.lua
@@ -166,3 +166,5 @@ files {
MAME_DIR .. "src/frontend/mame/ui/widgets.cpp",
MAME_DIR .. "src/frontend/mame/ui/widgets.h",
}
+
+pchsource(MAME_DIR .. "src/frontend/mame/audit.cpp")
diff --git a/docs/release/scripts/src/osd/modules.lua b/docs/release/scripts/src/osd/modules.lua
index 1376be2b1d5..ed4b53e8a5f 100644
--- a/docs/release/scripts/src/osd/modules.lua
+++ b/docs/release/scripts/src/osd/modules.lua
@@ -68,6 +68,7 @@ function osdmodulesbuild()
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/debugger/debuggdbstub.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",
diff --git a/docs/release/scripts/src/video.lua b/docs/release/scripts/src/video.lua
index 60f6a934655..4e2cec6f0f6 100644
--- a/docs/release/scripts/src/video.lua
+++ b/docs/release/scripts/src/video.lua
@@ -43,6 +43,18 @@ end
--------------------------------------------------
--
+--@src/devices/video/am8052.h,VIDEOS["AM8052"] = true
+--------------------------------------------------
+
+if (VIDEOS["AM8052"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/am8052.cpp",
+ MAME_DIR .. "src/devices/video/am8052.h",
+ }
+end
+
+--------------------------------------------------
+--
--@src/devices/video/bufsprite.h,VIDEOS["BUFSPRITE"] = true
--------------------------------------------------
@@ -605,6 +617,18 @@ end
--------------------------------------------------
--
+--@src/devices/video/md4330b.h,VIDEOS["MD4330B"] = true
+--------------------------------------------------
+
+if (VIDEOS["MD4330B"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/md4330b.cpp",
+ MAME_DIR .. "src/devices/video/md4330b.h",
+ }
+end
+
+--------------------------------------------------
+--
--@src/devices/video/mm5445.h,VIDEOS["MM5445"] = true
--------------------------------------------------
@@ -675,6 +699,18 @@ end
--------------------------------------------------
--
+--@src/devices/video/virge_pci.h,VIDEOS["VIRGE_PCI"] = true
+--------------------------------------------------
+
+if (VIDEOS["VIRGE_PCI"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/virge_pci.cpp",
+ MAME_DIR .. "src/devices/video/virge_pci.h",
+ }
+end
+
+--------------------------------------------------
+--
--@src/devices/video/pcd8544.h,VIDEOS["PCD8544"] = true
--------------------------------------------------
diff --git a/docs/release/scripts/target/hbmame/hbmame.lua b/docs/release/scripts/target/hbmame/hbmame.lua
index 665dfd1c100..d504282526b 100644
--- a/docs/release/scripts/target/hbmame/hbmame.lua
+++ b/docs/release/scripts/target/hbmame/hbmame.lua
@@ -946,6 +946,8 @@ files {
MAME_DIR .. "src/mame/machine/taitosj.cpp",
MAME_DIR .. "src/mame/video/taitosj.cpp",
MAME_DIR .. "src/mame/audio/taito_zm.cpp", -- zn
+ MAME_DIR .. "src/hbmame/drivers/warriorb.cpp",
+ MAME_DIR .. "src/mame/video/warriorb.cpp",
}
createHBMAMEProjects(_target, _subtarget, "technos")
diff --git a/docs/release/scripts/target/mame/arcade.lua b/docs/release/scripts/target/mame/arcade.lua
index aff892df782..90a55961585 100644
--- a/docs/release/scripts/target/mame/arcade.lua
+++ b/docs/release/scripts/target/mame/arcade.lua
@@ -284,6 +284,7 @@ SOUNDS["LC7535"] = true
VIDEOS["SEGA315_5124"] = true
VIDEOS["SEGA315_5313"] = true
+--VIDEOS["AM8052"] = true
VIDEOS["BUFSPRITE"] = true
--VIDEOS["CDP1861"] = true
--VIDEOS["CDP1862"] = true
@@ -327,6 +328,7 @@ VIDEOS["MB90082"] = true
VIDEOS["MB_VCU"] = true
VIDEOS["MC6845"] = true
--VIDEOS["MC6847"] = true
+--VIDEOS["MD4330B"] = true
--VIDEOS["MM5445"] = true
--VIDEOS["MSM6222B"] = true
--VIDEOS["MSM6255"] = true
@@ -445,7 +447,8 @@ MACHINES["DS1204"] = true
MACHINES["DS1205"] = true
MACHINES["DS1302"] = true
--MACHINES["DS1315"] = true
---MACHINES["DS1386"] = true
+MACHINES["DS1386"] = true
+MACHINES["DS17X85"] = true
MACHINES["DS1994"] = true
MACHINES["DS2401"] = true
MACHINES["DS2404"] = true
@@ -556,6 +559,8 @@ MACHINES["OUTPUT_LATCH"] = true
MACHINES["PC_FDC"] = true
MACHINES["PC_LPT"] = true
--MACHINES["PCCARD"] = true
+--MACHINES["PCF8583"] = true
+MACHINES["PCF8584"] = true
MACHINES["PCF8593"] = true
MACHINES["PCI"] = true
MACHINES["PCKEYBRD"] = true
@@ -677,6 +682,7 @@ MACHINES["PS2INTC"] = true
--MACHINES["IOPTIMER"] = true
MACHINES["AIC565"] = true
MACHINES["AIC6250"] = true
+MACHINES["VRENDER0"] = true
--------------------------------------------------
-- specify available bus cores
@@ -912,7 +918,7 @@ function createMAMEProjects(_target, _subtarget, _name)
kind (LIBTYPE)
uuid (os.uuid("drv-" .. _target .."_" .. _subtarget .. "_" .._name))
addprojectflags()
- precompiledheaders()
+ precompiledheaders_novs()
includedirs {
MAME_DIR .. "src/osd",
@@ -929,6 +935,7 @@ function createMAMEProjects(_target, _subtarget, _name)
ext_includedir("flac"),
ext_includedir("glm"),
ext_includedir("jpeg"),
+ ext_includedir("rapidjson"),
}
end
@@ -1430,8 +1437,6 @@ files {
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",
@@ -3068,6 +3073,7 @@ files {
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/snesb51.cpp",
MAME_DIR .. "src/mame/drivers/snesb.cpp",
MAME_DIR .. "src/mame/drivers/spacefb.cpp",
MAME_DIR .. "src/mame/includes/spacefb.h",
@@ -4645,6 +4651,11 @@ files {
MAME_DIR .. "src/mame/drivers/corona.cpp",
MAME_DIR .. "src/mame/drivers/cwheel.cpp",
MAME_DIR .. "src/mame/drivers/crystal.cpp",
+ MAME_DIR .. "src/mame/drivers/ddz.cpp",
+ MAME_DIR .. "src/mame/drivers/menghong.cpp",
+ MAME_DIR .. "src/mame/drivers/trivrus.cpp",
+ MAME_DIR .. "src/mame/drivers/crospuzl.cpp",
+ MAME_DIR .. "src/mame/drivers/psattack.cpp",
MAME_DIR .. "src/mame/video/vrender0.cpp",
MAME_DIR .. "src/mame/video/vrender0.h",
MAME_DIR .. "src/mame/drivers/cubeqst.cpp",
@@ -4785,6 +4796,7 @@ files {
MAME_DIR .. "src/mame/video/micro3d.cpp",
MAME_DIR .. "src/mame/audio/micro3d.cpp",
MAME_DIR .. "src/mame/audio/micro3d.h",
+ MAME_DIR .. "src/mame/drivers/microdar.cpp",
MAME_DIR .. "src/mame/drivers/midas.cpp",
MAME_DIR .. "src/mame/drivers/mil4000.cpp",
MAME_DIR .. "src/mame/drivers/miniboy7.cpp",
@@ -4842,6 +4854,7 @@ files {
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/pokerout.cpp",
MAME_DIR .. "src/mame/drivers/potgoldu.cpp",
MAME_DIR .. "src/mame/drivers/proconn.cpp",
MAME_DIR .. "src/mame/drivers/pse.cpp",
diff --git a/docs/release/scripts/target/mame/dummy.lua b/docs/release/scripts/target/mame/dummy.lua
index ec5d366abc6..d19a054cfc8 100644
--- a/docs/release/scripts/target/mame/dummy.lua
+++ b/docs/release/scripts/target/mame/dummy.lua
@@ -18,7 +18,7 @@ function createProjects_mame_dummy(_target, _subtarget)
kind (LIBTYPE)
uuid (os.uuid("drv-mame_dummy"))
addprojectflags()
- precompiledheaders()
+ precompiledheaders_novs()
includedirs {
MAME_DIR .. "src/osd",
diff --git a/docs/release/scripts/target/mame/mess.lua b/docs/release/scripts/target/mame/mess.lua
index 4e17643a26b..b1321081bf9 100644
--- a/docs/release/scripts/target/mame/mess.lua
+++ b/docs/release/scripts/target/mame/mess.lua
@@ -299,6 +299,7 @@ SOUNDS["SWP30"] = true
VIDEOS["SEGA315_5124"] = true
VIDEOS["SEGA315_5313"] = true
+VIDEOS["AM8052"] = true
--VIDEOS["BUFSPRITE"] = true
VIDEOS["BT45X"] = true
VIDEOS["BT459"] = true
@@ -348,6 +349,7 @@ VIDEOS["IMS_CVC"] = true
--VIDEOS["MB_VCU"] = true
VIDEOS["MC6845"] = true
VIDEOS["MC6847"] = true
+VIDEOS["MD4330B"] = true
VIDEOS["MM5445"] = true
VIDEOS["MSM6222B"] = true
VIDEOS["MSM6255"] = true
@@ -381,6 +383,7 @@ VIDEOS["UPD7220"] = true
VIDEOS["UPD7227"] = true
VIDEOS["V9938"] = true
VIDEOS["VIC4567"] = true
+VIDEOS["VIRGE_PCI"] = true
--VIDEOS["VOODOO"] = true
VIDEOS["SCN2674"] = true
VIDEOS["GB_LCD"] = true
@@ -452,6 +455,7 @@ MACHINES["DP8573"] = true
MACHINES["DS1302"] = true
MACHINES["DS1315"] = true
MACHINES["DS1386"] = true
+MACHINES["DS17X85"] = true
MACHINES["DS2401"] = true
MACHINES["DS2404"] = true
MACHINES["DS75160A"] = true
@@ -565,6 +569,7 @@ MACHINES["PC_FDC"] = true
MACHINES["PC_LPT"] = true
MACHINES["PCCARD"] = true
MACHINES["PCF8583"] = true
+--MACHINES["PCF8584"] = true
MACHINES["PCF8593"] = true
MACHINES["PCI"] = true
MACHINES["PCKEYBRD"] = true
@@ -955,6 +960,7 @@ FORMATS["HP_IPC_DSK"] = true
FORMATS["IQ151_DSK"] = true
FORMATS["ITT3030_DSK"] = true
FORMATS["JFD_DSK"] = true
+FORMATS["JUKU_DSK"] = true
FORMATS["JVC_DSK"] = true
FORMATS["OS9_DSK"] = true
FORMATS["KAYPRO_DSK"] = true
@@ -1018,6 +1024,7 @@ FORMATS["TVC_CAS"] = true
FORMATS["TVC_DSK"] = true
FORMATS["TZX_CAS"] = true
FORMATS["UEF_CAS"] = true
+FORMATS["UNIFLEX_DSK"] = true
FORMATS["UPD765_DSK"] = true
FORMATS["VDK_DSK"] = true
FORMATS["VECTOR06_DSK"] = true
@@ -1127,6 +1134,7 @@ function linkProjects_mame_mess(_target, _subtarget)
"homebrew",
"homelab",
"hp",
+ "husky",
"ibm6580",
"ie15",
"imp",
@@ -1285,7 +1293,7 @@ function createMESSProjects(_target, _subtarget, _name)
kind (LIBTYPE)
uuid (os.uuid("drv-" .. _target .."_" .. _subtarget .. "_" .._name))
addprojectflags()
- precompiledheaders()
+ precompiledheaders_novs()
includedirs {
MAME_DIR .. "src/osd",
@@ -1453,8 +1461,6 @@ end
--------------------------------------------------
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",
@@ -2300,10 +2306,13 @@ files {
createMESSProjects(_target, _subtarget, "hegener")
files {
+ MAME_DIR .. "src/mame/drivers/mephisto_brikett.cpp",
MAME_DIR .. "src/mame/drivers/mephisto_glasgow.cpp",
+ MAME_DIR .. "src/mame/drivers/mephisto_mm1.cpp",
MAME_DIR .. "src/mame/drivers/mephisto_mm2.cpp",
MAME_DIR .. "src/mame/drivers/mephisto_modena.cpp",
MAME_DIR .. "src/mame/drivers/mephisto_modular.cpp",
+ MAME_DIR .. "src/mame/drivers/mephisto_mondial68k.cpp",
MAME_DIR .. "src/mame/drivers/mephisto_montec.cpp",
MAME_DIR .. "src/mame/drivers/mephisto_polgar.cpp",
MAME_DIR .. "src/mame/machine/mmboard.cpp",
@@ -2387,6 +2396,14 @@ files {
MAME_DIR .. "src/mame/drivers/hk68v10.cpp",
}
+createMESSProjects(_target, _subtarget, "husky")
+files {
+ MAME_DIR .. "src/mame/drivers/hawk.cpp",
+ MAME_DIR .. "src/mame/drivers/hunter2.cpp",
+ MAME_DIR .. "src/mame/drivers/hunter16.cpp",
+ MAME_DIR .. "src/mame/drivers/husky.cpp",
+}
+
createMESSProjects(_target, _subtarget, "ibm6580")
files {
MAME_DIR .. "src/mame/drivers/ibm6580.cpp",
@@ -2748,6 +2765,8 @@ files {
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/machine/pc9801_memsw.cpp",
+ MAME_DIR .. "src/mame/machine/pc9801_memsw.h",
MAME_DIR .. "src/mame/drivers/tk80bs.cpp",
}
@@ -3070,8 +3089,10 @@ files {
MAME_DIR .. "src/mame/drivers/saitek_delta1.cpp",
MAME_DIR .. "src/mame/drivers/saitek_risc2500.cpp",
MAME_DIR .. "src/mame/includes/saitek_stratos.h",
+ MAME_DIR .. "src/mame/drivers/saitek_ssystem3.cpp",
MAME_DIR .. "src/mame/drivers/saitek_stratos.cpp",
MAME_DIR .. "src/mame/drivers/saitek_corona.cpp", -- subdriver of saitek_stratos
+ MAME_DIR .. "src/mame/drivers/saitek_superstar.cpp",
}
createMESSProjects(_target, _subtarget, "samcoupe")
@@ -3889,6 +3910,7 @@ files {
MAME_DIR .. "src/mame/machine/cit101_kbd.cpp",
MAME_DIR .. "src/mame/machine/cit101_kbd.h",
MAME_DIR .. "src/mame/drivers/cit220.cpp",
+ MAME_DIR .. "src/mame/drivers/clxvme186.cpp",
MAME_DIR .. "src/mame/drivers/codata.cpp",
MAME_DIR .. "src/mame/drivers/controlid.cpp",
MAME_DIR .. "src/mame/drivers/cortex.cpp",
@@ -3959,8 +3981,6 @@ files {
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/hunter16.cpp",
MAME_DIR .. "src/mame/drivers/i7000.cpp",
MAME_DIR .. "src/mame/drivers/ibm3153.cpp",
MAME_DIR .. "src/mame/drivers/icatel.cpp",
@@ -3977,6 +3997,7 @@ files {
MAME_DIR .. "src/mame/drivers/itt9216.cpp",
MAME_DIR .. "src/mame/drivers/jade.cpp",
MAME_DIR .. "src/mame/drivers/jonos.cpp",
+ MAME_DIR .. "src/mame/drivers/juku.cpp",
MAME_DIR .. "src/mame/drivers/krokha.cpp",
MAME_DIR .. "src/mame/drivers/kron.cpp",
MAME_DIR .. "src/mame/drivers/lee1214.cpp",
@@ -4002,7 +4023,9 @@ files {
MAME_DIR .. "src/mame/drivers/mini2440.cpp",
MAME_DIR .. "src/mame/drivers/miniframe.cpp",
MAME_DIR .. "src/mame/drivers/minitel_2_rpic.cpp",
+ MAME_DIR .. "src/mame/drivers/ml20.cpp",
MAME_DIR .. "src/mame/drivers/mmd1.cpp",
+ MAME_DIR .. "src/mame/drivers/mmd2.cpp",
MAME_DIR .. "src/mame/drivers/mod8.cpp",
MAME_DIR .. "src/mame/drivers/modellot.cpp",
MAME_DIR .. "src/mame/drivers/molecular.cpp",
@@ -4060,9 +4083,6 @@ files {
MAME_DIR .. "src/mame/includes/softbox.h",
MAME_DIR .. "src/mame/drivers/squale.cpp",
MAME_DIR .. "src/mame/drivers/solbourne.cpp",
- MAME_DIR .. "src/mame/drivers/ssystem3.cpp",
- MAME_DIR .. "src/mame/includes/ssystem3.h",
- MAME_DIR .. "src/mame/video/ssystem3.cpp",
MAME_DIR .. "src/mame/drivers/swyft.cpp",
MAME_DIR .. "src/mame/drivers/symbolics.cpp",
MAME_DIR .. "src/mame/drivers/sys2900.cpp",
diff --git a/docs/release/scripts/target/mame/nl.lua b/docs/release/scripts/target/mame/nl.lua
index cd36d568184..d16244d7ea4 100644
--- a/docs/release/scripts/target/mame/nl.lua
+++ b/docs/release/scripts/target/mame/nl.lua
@@ -108,7 +108,7 @@ function createProjects_mame_nl(_target, _subtarget)
kind (LIBTYPE)
uuid (os.uuid("drv-mame-nl"))
addprojectflags()
- precompiledheaders()
+ precompiledheaders_novs()
includedirs {
MAME_DIR .. "src/osd",
diff --git a/docs/release/scripts/target/mame/tiny.lua b/docs/release/scripts/target/mame/tiny.lua
index 2f62d3560bc..c3f8c48b505 100644
--- a/docs/release/scripts/target/mame/tiny.lua
+++ b/docs/release/scripts/target/mame/tiny.lua
@@ -93,7 +93,7 @@ function createProjects_mame_tiny(_target, _subtarget)
kind (LIBTYPE)
uuid (os.uuid("drv-mame-tiny"))
addprojectflags()
- precompiledheaders()
+ precompiledheaders_novs()
includedirs {
MAME_DIR .. "src/osd",
diff --git a/docs/release/scripts/target/mame/virtual.lua b/docs/release/scripts/target/mame/virtual.lua
index 3cd2a980a60..bac83176d3f 100644
--- a/docs/release/scripts/target/mame/virtual.lua
+++ b/docs/release/scripts/target/mame/virtual.lua
@@ -101,7 +101,7 @@ function createVirtualProjects(_target, _subtarget, _name)
kind (LIBTYPE)
uuid (os.uuid("drv-" .. _target .."_" .. _subtarget .. "_" .._name))
addprojectflags()
- precompiledheaders()
+ precompiledheaders_novs()
includedirs {
MAME_DIR .. "src/osd",
diff --git a/docs/release/src/emu/emuopts.cpp b/docs/release/src/emu/emuopts.cpp
index 76f5807820d..67373a294ca 100644
--- a/docs/release/src/emu/emuopts.cpp
+++ b/docs/release/src/emu/emuopts.cpp
@@ -193,7 +193,6 @@ const options_entry emu_options::s_option_entries[] =
{ 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 system information screen at startup" },
- { OPTION_SKIP_MANDATORY_FILEMAN, "0", OPTION_BOOLEAN, "skip prompting the user for any mandatory images with the file manager 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)" },
@@ -385,9 +384,9 @@ namespace
if (!same_name)
result.push_back(image.brief_instance_name());
- if (image.instance_name() != image.cannonical_instance_name())
+ if (image.instance_name() != image.canonical_instance_name())
{
- result.push_back(image.cannonical_instance_name());
+ result.push_back(image.canonical_instance_name());
if (!same_name)
result.push_back(image.brief_instance_name() + "1");
}
@@ -565,7 +564,7 @@ bool emu_options::add_and_remove_slot_options()
for (const device_slot_interface &slot : slot_interface_iterator(config.root_device()))
{
- // come up with the cannonical name of the slot
+ // come up with the canonical name of the slot
const char *slot_option_name = slot.slot_name();
// erase this option from existing (so we don't purge it later)
@@ -631,7 +630,7 @@ bool emu_options::add_and_remove_image_options()
// "cartridge" starting out, but become "cartridge1" when another cartridge device is added.
//
// To get around this behavior, our internal data structures work in terms of what is
- // returned by cannonical_instance_name(), which will be something like "cartridge1" both
+ // returned by canonical_instance_name(), which will be something like "cartridge1" both
// for a singular cartridge device and the first cartridge in a multi cartridge system.
//
// The need for this behavior was identified by Tafoid when the following command line
@@ -647,9 +646,9 @@ bool emu_options::add_and_remove_image_options()
// first, create a list of existing image options; this is so we can purge
// any stray slot options that are no longer pertinent when we're done; we
// have to do this for both "flavors" of name
- existing_option_tracker<::image_option> existing(m_image_options_cannonical);
+ existing_option_tracker<::image_option> existing(m_image_options_canonical);
- // wipe the non-cannonical image options; we're going to rebuild it
+ // wipe the non-canonical image options; we're going to rebuild it
m_image_options.clear();
// it is perfectly legal for this to be called without a system; we
@@ -662,19 +661,19 @@ bool emu_options::add_and_remove_image_options()
// iterate through all image devices
for (device_image_interface &image : image_interface_iterator(config.root_device()))
{
- const std::string &cannonical_name(image.cannonical_instance_name());
+ const std::string &canonical_name(image.canonical_instance_name());
// erase this option from existing (so we don't purge it later)
- existing.remove(cannonical_name);
+ existing.remove(canonical_name);
// do we need to add this option?
- auto iter = m_image_options_cannonical.find(cannonical_name);
- ::image_option *this_option = iter != m_image_options_cannonical.end() ? &iter->second : nullptr;
+ auto iter = m_image_options_canonical.find(canonical_name);
+ ::image_option *this_option = iter != m_image_options_canonical.end() ? &iter->second : nullptr;
if (!this_option)
{
- // we do - add it to both m_image_options_cannonical and m_image_options
- auto pair = std::make_pair(cannonical_name, ::image_option(*this, image.cannonical_instance_name()));
- this_option = &m_image_options_cannonical.emplace(std::move(pair)).first->second;
+ // we do - add it to both m_image_options_canonical and m_image_options
+ auto pair = std::make_pair(canonical_name, ::image_option(*this, image.canonical_instance_name()));
+ this_option = &m_image_options_canonical.emplace(std::move(pair)).first->second;
changed = true;
// if this image is user loadable, we have to surface it in the core_options
@@ -704,15 +703,15 @@ bool emu_options::add_and_remove_image_options()
// at this point we need to purge stray image options that may no longer be pertinent
for (auto &opt_name : existing)
{
- auto iter = m_image_options_cannonical.find(*opt_name);
- assert(iter != m_image_options_cannonical.end());
+ auto iter = m_image_options_canonical.find(*opt_name);
+ assert(iter != m_image_options_canonical.end());
// if this is represented in core_options, remove it
if (iter->second.option_entry())
remove_entry(*iter->second.option_entry());
// remove this option
- m_image_options_cannonical.erase(iter);
+ m_image_options_canonical.erase(iter);
changed = true;
}
@@ -1233,9 +1232,9 @@ core_options::entry::shared_ptr slot_option::setup_option_entry(const char *name
// image_option ctor
//-------------------------------------------------
-image_option::image_option(emu_options &host, const std::string &cannonical_instance_name)
+image_option::image_option(emu_options &host, const std::string &canonical_instance_name)
: m_host(host)
- , m_canonical_instance_name(cannonical_instance_name)
+ , m_canonical_instance_name(canonical_instance_name)
{
}
diff --git a/docs/release/src/emu/emuopts.h b/docs/release/src/emu/emuopts.h
index 0e66f8f84d7..970a90c67da 100644
--- a/docs/release/src/emu/emuopts.h
+++ b/docs/release/src/emu/emuopts.h
@@ -162,7 +162,6 @@
#define OPTION_BIOS "bios"
#define OPTION_CHEAT "cheat"
#define OPTION_SKIP_GAMEINFO "skip_gameinfo"
-#define OPTION_SKIP_MANDATORY_FILEMAN "skip_mandatory_fileman"
#define OPTION_UI_FONT "uifont"
#define OPTION_UI "ui"
#define OPTION_RAMSIZE "ramsize"
@@ -438,7 +437,6 @@ public:
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); }
- bool skip_mandatory_fileman() const { return bool_value(OPTION_SKIP_MANDATORY_FILEMAN); }
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); }
@@ -511,7 +509,7 @@ private:
// slots and devices
std::unordered_map<std::string, ::slot_option> m_slot_options;
- std::unordered_map<std::string, ::image_option> m_image_options_cannonical;
+ std::unordered_map<std::string, ::image_option> m_image_options_canonical;
std::unordered_map<std::string, ::image_option *> m_image_options;
// cached options, for scenarios where parsing core_options is too slow
diff --git a/docs/release/src/frontend/mame/info.cpp b/docs/release/src/frontend/mame/info.cpp
index 91669110961..e14fe63cdd8 100644
--- a/docs/release/src/frontend/mame/info.cpp
+++ b/docs/release/src/frontend/mame/info.cpp
@@ -2,7 +2,7 @@
// copyright-holders:Aaron Giles,Paul Priest
/***************************************************************************
- info.c
+ info.cpp
Dumps the MAME internal data as an XML file.
@@ -27,7 +27,9 @@
#include <ctype.h>
#include <cstring>
-#include <map>
+#include <unordered_set>
+#include <queue>
+#include <future>
#define XML_ROOT "mame"
@@ -35,11 +37,59 @@
//**************************************************************************
+// ANONYMOUS NAMESPACE PROTOTYPES
+//**************************************************************************
+
+namespace
+{
+ class device_type_compare
+ {
+ public:
+ bool operator()(const std::add_pointer_t<device_type> &lhs, const std::add_pointer_t<device_type> &rhs) const;
+ };
+
+ typedef std::set<std::add_pointer_t<device_type>, device_type_compare> device_type_set;
+
+ std::string normalize_string(const char *string);
+
+ // internal helper
+ void output_header(std::ostream &out, bool dtd);
+ void output_footer(std::ostream &out);
+
+ void output_one(std::ostream &out, driver_enumerator &drivlist, const game_driver &driver, device_type_set *devtypes);
+ void output_sampleof(std::ostream &out, device_t &device);
+ void output_bios(std::ostream &out, device_t const &device);
+ void output_rom(std::ostream &out, driver_enumerator *drivlist, const game_driver *driver, device_t &device);
+ void output_device_refs(std::ostream &out, device_t &root);
+ void output_sample(std::ostream &out, device_t &device);
+ void output_chips(std::ostream &out, device_t &device, const char *root_tag);
+ void output_display(std::ostream &out, device_t &device, machine_flags::type const *flags, const char *root_tag);
+ void output_sound(std::ostream &out, device_t &device);
+ void output_ioport_condition(std::ostream &out, const ioport_condition &condition, unsigned indent);
+ void output_input(std::ostream &out, const ioport_list &portlist);
+ void output_switches(std::ostream &out, const ioport_list &portlist, const char *root_tag, int type, const char *outertag, const char *loctag, const char *innertag);
+ void output_ports(std::ostream &out, const ioport_list &portlist);
+ void output_adjusters(std::ostream &out, const ioport_list &portlist);
+ void output_driver(std::ostream &out, game_driver const &driver, device_t::feature_type unemulated, device_t::feature_type imperfect);
+ void output_features(std::ostream &out, device_type type, device_t::feature_type unemulated, device_t::feature_type imperfect);
+ void output_images(std::ostream &out, device_t &device, const char *root_tag);
+ void output_slots(std::ostream &out, machine_config &config, device_t &device, const char *root_tag, device_type_set *devtypes);
+ void output_software_list(std::ostream &out, device_t &root);
+ void output_ramoptions(std::ostream &out, device_t &root);
+
+ void output_one_device(std::ostream &out, machine_config &config, device_t &device, const char *devtag);
+ void output_devices(std::ostream &out, emu_options &lookup_options, device_type_set const *filter);
+
+ const char *get_merge_name(driver_enumerator &drivlist, const game_driver &driver, util::hash_collection const &romhashes);
+};
+
+
+//**************************************************************************
// GLOBAL VARIABLES
//**************************************************************************
// DTD string describing the data
-const char info_xml_creator::s_dtd_string[] =
+static const char s_dtd_string[] =
"<!DOCTYPE __XML_ROOT__ [\n"
"<!ELEMENT __XML_ROOT__ (__XML_TOP__+)>\n"
"\t<!ATTLIST __XML_ROOT__ build CDATA #IMPLIED>\n"
@@ -212,132 +262,212 @@ const char info_xml_creator::s_dtd_string[] =
//-------------------------------------------------
info_xml_creator::info_xml_creator(emu_options const &options, bool dtd)
- : m_output(nullptr)
- , m_dtd(dtd)
+ : m_dtd(dtd)
{
}
//-------------------------------------------------
-// output_mame_xml - print the XML information
-// for all known games
+// output - print the XML information for all
+// known machines matching a pattern
//-------------------------------------------------
-void info_xml_creator::output(FILE *out, std::vector<std::string> const &patterns)
+void info_xml_creator::output(std::ostream &out, const std::vector<std::string> &patterns)
{
- m_output = out;
-
- std::unique_ptr<device_type_set> devfilter(patterns.empty() ? nullptr : new device_type_set);
-
- // track which patterns match machines
- driver_enumerator drivlist(m_lookup_options);
- std::vector<bool> matched(patterns.size(), false);
- size_t exact_matches = 0;
- auto const included = [&patterns, &matched, &exact_matches] (char const *const name) -> bool
+ if (patterns.empty())
{
- if (patterns.empty())
- return true;
-
- bool result = false;
- auto it = matched.begin();
- for (std::string const &pat : patterns)
+ // no patterns specified - show everything
+ output(out);
+ }
+ else
+ {
+ // patterns specified - we have to filter output
+ std::vector<bool> matched(patterns.size(), false);
+ size_t exact_matches = 0;
+ const auto filter = [&patterns, &matched, &exact_matches](const char *shortname, bool &done) -> bool
{
- if (!core_strwildcmp(pat.c_str(), name))
+ bool result = false;
+ auto it = matched.begin();
+ for (const std::string &pat : patterns)
{
- result = true;
- if (!*it)
+ if (!core_strwildcmp(pat.c_str(), shortname))
{
- *it = true;
- if (!core_iswildstr(pat.c_str()))
- ++exact_matches;
+ // this driver matches the pattern - tell the caller
+ result = true;
+
+ // did we see this particular pattern before? if not, track that we have
+ if (!*it)
+ {
+ *it = true;
+ if (!core_iswildstr(pat.c_str()))
+ {
+ exact_matches++;
+
+ // stop looking if we found everything specified
+ if (exact_matches == patterns.size())
+ done = true;
+ }
+ }
}
+ it++;
}
- ++it;
+ return result;
+ };
+ output(out, filter);
+
+ // throw an error if there were unmatched patterns
+ auto iter = std::find(matched.begin(), matched.end(), false);
+ if (iter != matched.end())
+ {
+ int index = iter - matched.begin();
+ throw emu_fatalerror(EMU_ERR_NO_SUCH_GAME, "No matching machines found for '%s'", patterns[index].c_str());
+ }
+ }
+}
+
+
+//-------------------------------------------------
+// output - print the XML information for all
+// known (and filtered) machines
+//-------------------------------------------------
+
+void info_xml_creator::output(std::ostream &out, const std::function<bool(const char *shortname, bool &done)> &filter, bool include_devices)
+{
+ struct prepared_info
+ {
+ std::string m_xml_snippet;
+ device_type_set m_dev_set;
+ };
+
+ // prepare a driver enumerator and the queue
+ driver_enumerator drivlist(m_lookup_options);
+ bool drivlist_done = false;
+ bool filter_done = false;
+ bool header_outputted = false;
+
+ auto output_header_if_necessary = [this, &header_outputted](std::ostream &out)
+ {
+ if (!header_outputted)
+ {
+ output_header(out, m_dtd);
+ header_outputted = true;
}
- return result;
};
- // iterate through the drivers, outputting one at a time
- bool first = true;
- while (drivlist.next())
+ // only keep a device set when we're asked to track it
+ std::unique_ptr<device_type_set> devfilter;
+ if (include_devices && filter)
+ devfilter = std::make_unique<device_type_set>();
+
+ // prepare a queue of futures
+ std::queue<std::future<prepared_info>> queue;
+
+ // try enumerating drivers and outputting them
+ while (!queue.empty() || (!drivlist_done && !filter_done))
{
- if (included(drivlist.driver().name))
+ // try populating the queue
+ while (queue.size() < 20 && !drivlist_done && !filter_done)
{
- if (first)
+ if (!drivlist.next())
{
- output_header();
- first = false;
+ // at this point we are done enumerating through drivlist and it is no
+ // longer safe to call next(), so record that we're done
+ drivlist_done = true;
+ }
+ else if (!filter || filter(drivlist.driver().name, filter_done))
+ {
+ const game_driver &driver(drivlist.driver());
+ std::future<prepared_info> future_pi = std::async(std::launch::async, [&drivlist, &driver, &devfilter]
+ {
+ prepared_info result;
+ std::ostringstream stream;
+
+ output_one(stream, drivlist, driver, devfilter ? &result.m_dev_set : nullptr);
+ result.m_xml_snippet = stream.str();
+ return result;
+ });
+ queue.push(std::move(future_pi));
}
- output_one(drivlist, devfilter.get());
+ }
- // stop looking if we found everything specified
- if (!patterns.empty() && exact_matches == patterns.size())
- break;
+ // now that we have the queue populated, try grabbing one (assuming that it is not empty)
+ if (!queue.empty())
+ {
+ // wait for the future to complete and get the info
+ prepared_info pi = queue.front().get();
+ queue.pop();
+
+ // emit the XML
+ output_header_if_necessary(out);
+ out << pi.m_xml_snippet;
+
+ // merge devices into devfilter, if appropriate
+ if (devfilter)
+ {
+ for (const auto &x : pi.m_dev_set)
+ devfilter->insert(x);
+ }
}
}
// iterate through the device types if not everything matches a driver
- if (!patterns.empty() && exact_matches != patterns.size())
+ if (devfilter && !filter_done)
{
for (device_type type : registered_device_types)
{
- if (included(type.shortname()))
- {
+ if (!filter || filter(type.shortname(), filter_done))
devfilter->insert(&type);
- if (exact_matches == patterns.size())
- break;
- }
+
+ if (filter_done)
+ break;
}
}
// output devices (both devices with roms and slot devices)
- if (!devfilter || !devfilter->empty())
+ if (include_devices && (!devfilter || !devfilter->empty()))
{
- if (first)
- {
- output_header();
- first = false;
- }
- output_devices(devfilter.get());
+ output_header_if_necessary(out);
+ output_devices(out, m_lookup_options, devfilter.get());
}
- if (!first)
- output_footer();
+ if (header_outputted)
+ output_footer(out);
+}
- // throw an error if there were unmatched patterns
- auto it = matched.begin();
- for (std::string const &pat : patterns)
- {
- if (!*it)
- throw emu_fatalerror(EMU_ERR_NO_SUCH_GAME, "No matching machines found for '%s'", pat.c_str());
- ++it;
- }
-}
+//**************************************************************************
+// ANONYMOUS NAMESPACE IMPLEMENTATION
+//**************************************************************************
+namespace
+{
//-------------------------------------------------
-// output_mame_xml - print the XML information
-// for a subset of games
+// normalize_string
//-------------------------------------------------
-void info_xml_creator::output(FILE *out, driver_enumerator &drivlist, bool nodevices)
+std::string normalize_string(const char *string)
{
- m_output = out;
-
- device_type_set devfilter;
-
- output_header();
+ std::ostringstream stream;
- // iterate through the drivers, outputting one at a time
- while (drivlist.next())
- output_one(drivlist, &devfilter);
-
- // output devices (both devices with roms and slot devices)
- if (!nodevices)
- output_devices(&devfilter);
-
- output_footer();
+ if (string != nullptr)
+ {
+ while (*string)
+ {
+ switch (*string)
+ {
+ case '\"': stream << "&quot;"; break;
+ case '&': stream << "&amp;"; break;
+ case '<': stream << "&lt;"; break;
+ case '>': stream << "&gt;"; break;
+ default:
+ stream << *string;
+ break;
+ }
+ ++string;
+ }
+ }
+ return stream.str();
}
@@ -346,21 +476,21 @@ void info_xml_creator::output(FILE *out, driver_enumerator &drivlist, bool nodev
// the root element
//-------------------------------------------------
-void info_xml_creator::output_header()
+void output_header(std::ostream &out, bool dtd)
{
- if (m_dtd)
+ if (dtd)
{
// output the DTD
- fprintf(m_output, "<?xml version=\"1.0\"?>\n");
+ out << "<?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());
+ out << dtd << "\n\n";
}
// top-level tag
- fprintf(m_output, "<%s build=\"%s\" debug=\""
+ out << util::string_format("<%s build=\"%s\" debug=\""
#ifdef MAME_DEBUG
"yes"
#else
@@ -368,7 +498,7 @@ void info_xml_creator::output_header()
#endif
"\" mameconfig=\"%d\">\n",
XML_ROOT,
- util::xml::normalize_string(emulator_info::get_build_version()),
+ normalize_string(emulator_info::get_build_version()),
CONFIG_VERSION);
}
@@ -377,23 +507,22 @@ void info_xml_creator::output_header()
// output_header - close the root element
//-------------------------------------------------
-void info_xml_creator::output_footer()
+void output_footer(std::ostream &out)
{
// close the top level tag
- fprintf(m_output, "</%s>\n", XML_ROOT);
+ out << util::string_format("</%s>\n", XML_ROOT);
}
//-------------------------------------------------
// output_one - print the XML information
-// for one particular game driver
+// for one particular machine driver
//-------------------------------------------------
-void info_xml_creator::output_one(driver_enumerator &drivlist, device_type_set *devtypes)
+void output_one(std::ostream &out, driver_enumerator &drivlist, const game_driver &driver, device_type_set *devtypes)
{
- const game_driver &driver = drivlist.driver();
- std::shared_ptr<machine_config> const config(drivlist.config());
- device_iterator iter(config->root_device());
+ machine_config config(driver, drivlist.options());
+ device_iterator iter(config.root_device());
// allocate input ports and build overall emulation status
ioport_list portlist;
@@ -440,66 +569,66 @@ void info_xml_creator::output_one(driver_enumerator &drivlist, device_type_set *
}
// print the header and the machine name
- fprintf(m_output, "\t<%s name=\"%s\"", XML_TOP, util::xml::normalize_string(driver.name));
+ out << util::string_format("\t<%s name=\"%s\"", XML_TOP, normalize_string(driver.name));
// strip away any path information from the source_file and output it
const char *start = strrchr(driver.type.source(), '/');
if (!start)
start = strrchr(driver.type.source(), '\\');
start = start ? (start + 1) : driver.type.source();
- fprintf(m_output, " sourcefile=\"%s\"", util::xml::normalize_string(start));
+ out << util::string_format(" sourcefile=\"%s\"", normalize_string(start));
// append bios and runnable flags
if (driver.flags & machine_flags::IS_BIOS_ROOT)
- fprintf(m_output, " isbios=\"yes\"");
+ out << " isbios=\"yes\"";
if (driver.flags & machine_flags::MECHANICAL)
- fprintf(m_output, " ismechanical=\"yes\"");
+ out << " ismechanical=\"yes\"";
// display clone information
int clone_of = drivlist.find(driver.parent);
if (clone_of != -1 && !(drivlist.driver(clone_of).flags & machine_flags::IS_BIOS_ROOT))
- fprintf(m_output, " cloneof=\"%s\"", util::xml::normalize_string(drivlist.driver(clone_of).name));
+ out << util::string_format(" cloneof=\"%s\"", normalize_string(drivlist.driver(clone_of).name));
if (clone_of != -1)
- fprintf(m_output, " romof=\"%s\"", util::xml::normalize_string(drivlist.driver(clone_of).name));
+ out << util::string_format(" romof=\"%s\"", normalize_string(drivlist.driver(clone_of).name));
// display sample information and close the game tag
- output_sampleof(config->root_device());
- fprintf(m_output, ">\n");
+ output_sampleof(out, config.root_device());
+ out << ">\n";
// output game description
if (driver.type.fullname() != nullptr)
- fprintf(m_output, "\t\t<description>%s</description>\n", util::xml::normalize_string(driver.type.fullname()));
+ out << util::string_format("\t\t<description>%s</description>\n", normalize_string(driver.type.fullname()));
// print the year only if is a number or another allowed character (? or +)
if (driver.year != nullptr && strspn(driver.year, "0123456789?+") == strlen(driver.year))
- fprintf(m_output, "\t\t<year>%s</year>\n", util::xml::normalize_string(driver.year));
+ out << util::string_format("\t\t<year>%s</year>\n", 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));
+ out << util::string_format("\t\t<manufacturer>%s</manufacturer>\n", normalize_string(driver.manufacturer));
// now print various additional information
- output_bios(config->root_device());
- output_rom(&drivlist, config->root_device());
- output_device_refs(config->root_device());
- output_sample(config->root_device());
- output_chips(config->root_device(), "");
- output_display(config->root_device(), &drivlist.driver().flags, "");
- output_sound(config->root_device());
- output_input(portlist);
- output_switches(portlist, "", IPT_DIPSWITCH, "dipswitch", "diplocation", "dipvalue");
- output_switches(portlist, "", IPT_CONFIG, "configuration", "conflocation", "confsetting");
- output_ports(portlist);
- output_adjusters(portlist);
- output_driver(driver, overall_unemulated, overall_imperfect);
- output_features(driver.type, overall_unemulated, overall_imperfect);
- output_images(config->root_device(), "");
- output_slots(*config, config->root_device(), "", devtypes);
- output_software_list(config->root_device());
- output_ramoptions(config->root_device());
+ output_bios(out, config.root_device());
+ output_rom(out, &drivlist, &driver, config.root_device());
+ output_device_refs(out, config.root_device());
+ output_sample(out, config.root_device());
+ output_chips(out, config.root_device(), "");
+ output_display(out, config.root_device(), &driver.flags, "");
+ output_sound(out, config.root_device());
+ output_input(out, portlist);
+ output_switches(out, portlist, "", IPT_DIPSWITCH, "dipswitch", "diplocation", "dipvalue");
+ output_switches(out, portlist, "", IPT_CONFIG, "configuration", "conflocation", "confsetting");
+ output_ports(out, portlist);
+ output_adjusters(out, portlist);
+ output_driver(out, driver, overall_unemulated, overall_imperfect);
+ output_features(out, driver.type, overall_unemulated, overall_imperfect);
+ output_images(out, config.root_device(), "");
+ output_slots(out, config, config.root_device(), "", devtypes);
+ output_software_list(out, config.root_device());
+ output_ramoptions(out, config.root_device());
// close the topmost tag
- fprintf(m_output, "\t</%s>\n", XML_TOP);
+ out << util::string_format("\t</%s>\n", XML_TOP);
}
@@ -508,7 +637,7 @@ void info_xml_creator::output_one(driver_enumerator &drivlist, device_type_set *
// a single device
//-------------------------------------------------
-void info_xml_creator::output_one_device(machine_config &config, device_t &device, const char *devtag)
+void output_one_device(std::ostream &out, 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
@@ -538,33 +667,33 @@ void info_xml_creator::output_one_device(machine_config &config, device_t &devic
}
// start to output info
- fprintf(m_output, "\t<%s name=\"%s\"", XML_TOP, util::xml::normalize_string(device.shortname()));
+ out << util::string_format("\t<%s name=\"%s\"", XML_TOP, normalize_string(device.shortname()));
std::string src(device.source());
strreplace(src,"../", "");
- fprintf(m_output, " sourcefile=\"%s\" isdevice=\"yes\" runnable=\"no\"", util::xml::normalize_string(src.c_str()));
- output_sampleof(device);
- fprintf(m_output, ">\n\t\t<description>%s</description>\n", util::xml::normalize_string(device.name()));
+ out << util::string_format(" sourcefile=\"%s\" isdevice=\"yes\" runnable=\"no\"", normalize_string(src.c_str()));
+ output_sampleof(out, device);
+ out << ">\n" << util::string_format("\t\t<description>%s</description>\n", normalize_string(device.name()));
- output_bios(device);
- output_rom(nullptr, device);
- output_device_refs(device);
+ output_bios(out, device);
+ output_rom(out, nullptr, nullptr, device);
+ output_device_refs(out, device);
if (device.type().type() != typeid(samples_device)) // ignore samples_device itself
- output_sample(device);
+ output_sample(out, device);
- output_chips(device, devtag);
- output_display(device, nullptr, devtag);
+ output_chips(out, device, devtag);
+ output_display(out, device, nullptr, devtag);
if (has_speaker)
- output_sound(device);
+ output_sound(out, device);
if (has_input)
- output_input(portlist);
- output_switches(portlist, devtag, IPT_DIPSWITCH, "dipswitch", "diplocation", "dipvalue");
- output_switches(portlist, devtag, IPT_CONFIG, "configuration", "conflocation", "confsetting");
- output_adjusters(portlist);
- output_features(device.type(), overall_unemulated, overall_imperfect);
- output_images(device, devtag);
- output_slots(config, device, devtag, nullptr);
- fprintf(m_output, "\t</%s>\n", XML_TOP);
+ output_input(out, portlist);
+ output_switches(out, portlist, devtag, IPT_DIPSWITCH, "dipswitch", "diplocation", "dipvalue");
+ output_switches(out, portlist, devtag, IPT_CONFIG, "configuration", "conflocation", "confsetting");
+ output_adjusters(out, portlist);
+ output_features(out, device.type(), overall_unemulated, overall_imperfect);
+ output_images(out, device, devtag);
+ output_slots(out, config, device, devtag, nullptr);
+ out << util::string_format("\t</%s>\n", XML_TOP);
}
@@ -573,12 +702,12 @@ void info_xml_creator::output_one_device(machine_config &config, device_t &devic
// registered device types
//-------------------------------------------------
-void info_xml_creator::output_devices(device_type_set const *filter)
+void output_devices(std::ostream &out, emu_options &lookup_options, device_type_set const *filter)
{
// get config for empty machine
- machine_config config(GAME_NAME(___empty), m_lookup_options);
+ machine_config config(GAME_NAME(___empty), lookup_options);
- auto const action = [this, &config] (device_type type)
+ auto const action = [&config, &out] (device_type type)
{
// add it at the root of the machine config
device_t *dev;
@@ -593,7 +722,7 @@ void info_xml_creator::output_devices(device_type_set const *filter)
device.config_complete();
// print details and remove it
- output_one_device(config, *dev, dev->tag());
+ output_one_device(out, config, *dev, dev->tag());
machine_config::token const tok(config.begin_configuration(config.root_device()));
config.device_remove("_tmp");
};
@@ -615,11 +744,11 @@ void info_xml_creator::output_devices(device_type_set const *filter)
// subdevice, print a reference
//-------------------------------------------------
-void info_xml_creator::output_device_refs(device_t &root)
+void output_device_refs(std::ostream &out, device_t &root)
{
for (device_t &device : device_iterator(root))
if (&device != &root)
- fprintf(m_output, "\t\t<device_ref name=\"%s\"/>\n", util::xml::normalize_string(device.shortname()));
+ out << util::string_format("\t\t<device_ref name=\"%s\"/>\n", normalize_string(device.shortname()));
}
@@ -628,7 +757,7 @@ void info_xml_creator::output_device_refs(device_t &root)
// attribute, if appropriate
//-------------------------------------------------
-void info_xml_creator::output_sampleof(device_t &device)
+void output_sampleof(std::ostream &out, device_t &device)
{
// iterate over sample devices
for (samples_device &samples : samples_device_iterator(device))
@@ -636,7 +765,7 @@ void info_xml_creator::output_sampleof(device_t &device)
samples_iterator sampiter(samples);
if (sampiter.altbasename() != nullptr)
{
- fprintf(m_output, " sampleof=\"%s\"", util::xml::normalize_string(sampiter.altbasename()));
+ out << util::string_format(" sampleof=\"%s\"", normalize_string(sampiter.altbasename()));
// must stop here, as there can only be one attribute of the same name
return;
@@ -649,7 +778,7 @@ void info_xml_creator::output_sampleof(device_t &device)
// output_bios - print BIOS sets for a device
//-------------------------------------------------
-void info_xml_creator::output_bios(device_t const &device)
+void output_bios(std::ostream &out, device_t const &device)
{
// first determine the default BIOS name
char const *defaultname(nullptr);
@@ -662,13 +791,13 @@ void info_xml_creator::output_bios(device_t const &device)
// iterate over ROM entries and look for BIOSes
for (romload::system_bios const &bios : romload::entries(device.rom_region()).get_system_bioses())
{
- // output extracted name and descriptions
- fprintf(m_output, "\t\t<biosset");
- fprintf(m_output, " name=\"%s\"", util::xml::normalize_string(bios.get_name()));
- fprintf(m_output, " description=\"%s\"", util::xml::normalize_string(bios.get_description()));
+ // output extracted name and descriptions'
+ out << "\t\t<biosset";
+ out << util::string_format(" name=\"%s\"", normalize_string(bios.get_name()));
+ out << util::string_format(" description=\"%s\"", normalize_string(bios.get_description()));
if (defaultname && !std::strcmp(defaultname, bios.get_name()))
- fprintf(m_output, " default=\"yes\"");
- fprintf(m_output, "/>\n");
+ out << " default=\"yes\"";
+ out << "/>\n";
}
}
@@ -678,7 +807,7 @@ void info_xml_creator::output_bios(device_t const &device)
// the XML output
//-------------------------------------------------
-void info_xml_creator::output_rom(driver_enumerator *drivlist, device_t &device)
+void output_rom(std::ostream &out, driver_enumerator *drivlist, const game_driver *driver, device_t &device)
{
enum class type { BIOS, NORMAL, DISK };
std::map<u32, char const *> biosnames;
@@ -758,47 +887,50 @@ void info_xml_creator::output_rom(driver_enumerator *drivlist, device_t &device)
// if we have a valid ROM and we are a clone, see if we can find the parent ROM
util::hash_collection const hashes(rom->hashdata);
- char const *const merge_name((do_merge_name && !hashes.flag(util::hash_collection::FLAG_NO_DUMP)) ? get_merge_name(*drivlist, hashes) : nullptr);
+ char const *const merge_name((do_merge_name && !hashes.flag(util::hash_collection::FLAG_NO_DUMP)) ? get_merge_name(*drivlist, *driver, hashes) : nullptr);
// opening tag
- fprintf(m_output, is_disk ? "\t\t<disk" : "\t\t<rom");
+ if (is_disk)
+ out << "\t\t<disk";
+ else
+ out << "\t\t<rom";
// add name, merge, bios, and size tags */
char const *const name(rom->name);
if (name && name[0])
- fprintf(m_output, " name=\"%s\"", util::xml::normalize_string(name));
+ out << util::string_format(" name=\"%s\"", normalize_string(name));
if (merge_name)
- fprintf(m_output, " merge=\"%s\"", util::xml::normalize_string(merge_name));
+ out << util::string_format(" merge=\"%s\"", normalize_string(merge_name));
if (bios_name)
- fprintf(m_output, " bios=\"%s\"", util::xml::normalize_string(bios_name));
+ out << util::string_format(" bios=\"%s\"", normalize_string(bios_name));
if (!is_disk)
- fprintf(m_output, " size=\"%u\"", rom_file_size(rom));
+ out << util::string_format(" 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))
- fprintf(m_output, " %s", hashes.attribute_string().c_str()); // iterate over hash function types and print m_output their values
+ out << ' ' << hashes.attribute_string(); // iterate over hash function types and print m_output their values
else
- fprintf(m_output, " status=\"nodump\"");
+ out << " status=\"nodump\"";
// append a region name
- fprintf(m_output, " region=\"%s\"", region->name);
+ out << util::string_format(" region=\"%s\"", region->name);
if (!is_disk)
{
// for non-disk entries, print offset
- fprintf(m_output, " offset=\"%x\"", ROM_GETOFFSET(rom));
+ out << util::string_format(" offset=\"%x\"", ROM_GETOFFSET(rom));
}
else
{
// for disk entries, add the disk index
- fprintf(m_output, " index=\"%x\" writable=\"%s\"", DISK_GETINDEX(rom), DISK_ISREADONLY(rom) ? "no" : "yes");
+ out << util::string_format(" index=\"%x\" writable=\"%s\"", DISK_GETINDEX(rom), DISK_ISREADONLY(rom) ? "no" : "yes");
}
// add optional flag
if (ROM_ISOPTIONAL(rom))
- fprintf(m_output, " optional=\"yes\"");
+ out << " optional=\"yes\"";
- fprintf(m_output, "/>\n");
+ out << "/>\n";
}
bios_scanned = true;
}
@@ -810,7 +942,7 @@ void info_xml_creator::output_rom(driver_enumerator *drivlist, device_t &device)
// samples referenced by a game_driver
//-------------------------------------------------
-void info_xml_creator::output_sample(device_t &device)
+void output_sample(std::ostream &out, device_t &device)
{
// iterate over sample devices
for (samples_device &samples : samples_device_iterator(device))
@@ -824,7 +956,7 @@ void info_xml_creator::output_sample(device_t &device)
continue;
// output the sample name
- fprintf(m_output, "\t\t<sample name=\"%s\"/>\n", util::xml::normalize_string(samplename));
+ out << util::string_format("\t\t<sample name=\"%s\"/>\n", normalize_string(samplename));
}
}
}
@@ -835,7 +967,7 @@ void info_xml_creator::output_sample(device_t &device)
sound chips used by a game
-------------------------------------------------*/
-void info_xml_creator::output_chips(device_t &device, const char *root_tag)
+void output_chips(std::ostream &out, device_t &device, const char *root_tag)
{
// iterate over executable devices
for (device_execute_interface &exec : execute_interface_iterator(device))
@@ -845,12 +977,12 @@ void info_xml_creator::output_chips(device_t &device, const char *root_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");
+ out << "\t\t<chip";
+ out << " type=\"cpu\"";
+ out << util::string_format(" tag=\"%s\"", normalize_string(newtag.c_str()));
+ out << util::string_format(" name=\"%s\"", normalize_string(exec.device().name()));
+ out << util::string_format(" clock=\"%d\"", exec.device().clock());
+ out << "/>\n";
}
}
@@ -862,13 +994,13 @@ void info_xml_creator::output_chips(device_t &device, const char *root_tag)
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()));
+ out << "\t\t<chip";
+ out << " type=\"audio\"";
+ out << util::string_format(" tag=\"%s\"", normalize_string(newtag.c_str()));
+ out << util::string_format(" name=\"%s\"", normalize_string(sound.device().name()));
if (sound.device().clock() != 0)
- fprintf(m_output, " clock=\"%d\"", sound.device().clock());
- fprintf(m_output, "/>\n");
+ out << util::string_format(" clock=\"%d\"", sound.device().clock());
+ out << "/>\n";
}
}
}
@@ -879,7 +1011,7 @@ void info_xml_creator::output_chips(device_t &device, const char *root_tag)
// displays
//-------------------------------------------------
-void info_xml_creator::output_display(device_t &device, machine_flags::type const *flags, const char *root_tag)
+void output_display(std::ostream &out, device_t &device, machine_flags::type const *flags, const char *root_tag)
{
// iterate over screens
for (const screen_device &screendev : screen_device_iterator(device))
@@ -889,43 +1021,43 @@ void info_xml_creator::output_display(device_t &device, machine_flags::type cons
std::string newtag(screendev.tag()), oldtag(":");
newtag = newtag.substr(newtag.find(oldtag.append(root_tag)) + oldtag.length());
- fprintf(m_output, "\t\t<display tag=\"%s\"", util::xml::normalize_string(newtag.c_str()));
+ out << util::string_format("\t\t<display tag=\"%s\"", 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;
- case SCREEN_TYPE_SVG: fprintf(m_output, " type=\"svg\""); break;
- default: fprintf(m_output, " type=\"unknown\""); break;
+ case SCREEN_TYPE_RASTER: out << " type=\"raster\""; break;
+ case SCREEN_TYPE_VECTOR: out << " type=\"vector\""; break;
+ case SCREEN_TYPE_LCD: out << " type=\"lcd\""; break;
+ case SCREEN_TYPE_SVG: out << " type=\"svg\""; break;
+ default: out << " type=\"unknown\""; break;
}
// output the orientation as a string
switch (screendev.orientation())
{
case ORIENTATION_FLIP_X:
- fprintf(m_output, " rotate=\"0\" flipx=\"yes\"");
+ out << " rotate=\"0\" flipx=\"yes\"";
break;
case ORIENTATION_FLIP_Y:
- fprintf(m_output, " rotate=\"180\" flipx=\"yes\"");
+ out << " rotate=\"180\" flipx=\"yes\"";
break;
case ORIENTATION_FLIP_X|ORIENTATION_FLIP_Y:
- fprintf(m_output, " rotate=\"180\"");
+ out << " rotate=\"180\"";
break;
case ORIENTATION_SWAP_XY:
- fprintf(m_output, " rotate=\"90\" flipx=\"yes\"");
+ out << " rotate=\"90\" flipx=\"yes\"";
break;
case ORIENTATION_SWAP_XY|ORIENTATION_FLIP_X:
- fprintf(m_output, " rotate=\"90\"");
+ out << " rotate=\"90\"";
break;
case ORIENTATION_SWAP_XY|ORIENTATION_FLIP_Y:
- fprintf(m_output, " rotate=\"270\"");
+ out << " rotate=\"270\"";
break;
case ORIENTATION_SWAP_XY|ORIENTATION_FLIP_X|ORIENTATION_FLIP_Y:
- fprintf(m_output, " rotate=\"270\" flipx=\"yes\"");
+ out << " rotate=\"270\" flipx=\"yes\"";
break;
default:
- fprintf(m_output, " rotate=\"0\"");
+ out << " rotate=\"0\"";
break;
}
@@ -933,12 +1065,12 @@ void info_xml_creator::output_display(device_t &device, machine_flags::type cons
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());
+ out << util::string_format(" width=\"%d\"", visarea.width());
+ out << util::string_format(" height=\"%d\"", visarea.height());
}
// output refresh rate
- fprintf(m_output, " refresh=\"%f\"", ATTOSECONDS_TO_HZ(screendev.refresh_attoseconds()));
+ out << util::string_format(" refresh=\"%f\"", ATTOSECONDS_TO_HZ(screendev.refresh_attoseconds()));
// output raw video parameters only for games that are not vector
// and had raw parameters specified
@@ -946,15 +1078,15 @@ void info_xml_creator::output_display(device_t &device, machine_flags::type cons
{
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);
+ out << util::string_format(" pixclock=\"%d\"", pixclock);
+ out << util::string_format(" htotal=\"%d\"", screendev.width());
+ out << util::string_format(" hbend=\"%d\"", screendev.visible_area().min_x);
+ out << util::string_format(" hbstart=\"%d\"", screendev.visible_area().max_x+1);
+ out << util::string_format(" vtotal=\"%d\"", screendev.height());
+ out << util::string_format(" vbend=\"%d\"", screendev.visible_area().min_y);
+ out << util::string_format(" vbstart=\"%d\"", screendev.visible_area().max_y+1);
}
- fprintf(m_output, " />\n");
+ out << " />\n";
}
}
}
@@ -965,7 +1097,7 @@ void info_xml_creator::output_display(device_t &device, machine_flags::type cons
// speakers
//------------------------------------------------
-void info_xml_creator::output_sound(device_t &device)
+void output_sound(std::ostream &out, device_t &device)
{
speaker_device_iterator spkiter(device);
int speakers = spkiter.count();
@@ -975,7 +1107,7 @@ void info_xml_creator::output_sound(device_t &device)
if (snditer.first() == nullptr)
speakers = 0;
- fprintf(m_output, "\t\t<sound channels=\"%d\"/>\n", speakers);
+ out << util::string_format("\t\t<sound channels=\"%d\"/>\n", speakers);
}
@@ -984,10 +1116,10 @@ void info_xml_creator::output_sound(device_t &device)
// required to use I/O port field/setting
//-------------------------------------------------
-void info_xml_creator::output_ioport_condition(const ioport_condition &condition, unsigned indent)
+void output_ioport_condition(std::ostream &out, const ioport_condition &condition, unsigned indent)
{
for (unsigned i = 0; indent > i; ++i)
- fprintf(m_output, "\t");
+ out << '\t';
char const *rel(nullptr);
switch (condition.condition())
@@ -1001,7 +1133,7 @@ void info_xml_creator::output_ioport_condition(const ioport_condition &condition
case ioport_condition::NOTLESSTHAN: rel = "ge"; break;
}
- fprintf(m_output,"<condition tag=\"%s\" mask=\"%u\" relation=\"%s\" value=\"%u\"/>\n", util::xml::normalize_string(condition.tag()), condition.mask(), rel, condition.value());
+ out << util::string_format("<condition tag=\"%s\" mask=\"%u\" relation=\"%s\" value=\"%u\"/>\n", normalize_string(condition.tag()), condition.mask(), rel, condition.value());
}
//-------------------------------------------------
@@ -1009,7 +1141,7 @@ void info_xml_creator::output_ioport_condition(const ioport_condition &condition
// input
//-------------------------------------------------
-void info_xml_creator::output_input(const ioport_list &portlist)
+void output_input(std::ostream &out, const ioport_list &portlist)
{
// enumerated list of control types
// NOTE: the order is chosen so that 'spare' button inputs are assigned to the
@@ -1403,15 +1535,15 @@ void info_xml_creator::output_input(const ioport_list &portlist)
// Output the input info
// First basic info
- fprintf(m_output, "\t\t<input");
- fprintf(m_output, " players=\"%d\"", nplayer);
+ out << "\t\t<input";
+ out << util::string_format(" players=\"%d\"", nplayer);
if (ncoin != 0)
- fprintf(m_output, " coins=\"%d\"", ncoin);
+ out << util::string_format(" coins=\"%d\"", ncoin);
if (service)
- fprintf(m_output, " service=\"yes\"");
+ out << util::string_format(" service=\"yes\"");
if (tilt)
- fprintf(m_output, " tilt=\"yes\"");
- fprintf(m_output, ">\n");
+ out << util::string_format(" tilt=\"yes\"");
+ out << ">\n";
// Then controller specific ones
for (auto & elem : control_info)
@@ -1420,25 +1552,25 @@ void info_xml_creator::output_input(const ioport_list &portlist)
//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));
+ out << util::string_format("\t\t\t<control type=\"%s\"", normalize_string(elem.type));
if (nplayer > 1)
- fprintf(m_output, " player=\"%d\"", elem.player);
+ out << util::string_format(" player=\"%d\"", elem.player);
if (elem.nbuttons > 0)
{
- fprintf(m_output, " buttons=\"%d\"", strcmp(elem.type, "stick") ? elem.nbuttons : elem.maxbuttons);
+ out << util::string_format(" buttons=\"%d\"", strcmp(elem.type, "stick") ? elem.nbuttons : elem.maxbuttons);
if (elem.reqbuttons < elem.nbuttons)
- fprintf(m_output, " reqbuttons=\"%d\"", elem.reqbuttons);
+ out << util::string_format(" reqbuttons=\"%d\"", elem.reqbuttons);
}
if (elem.min != 0 || elem.max != 0)
- fprintf(m_output, " minimum=\"%d\" maximum=\"%d\"", elem.min, elem.max);
+ out << util::string_format(" minimum=\"%d\" maximum=\"%d\"", elem.min, elem.max);
if (elem.sensitivity != 0)
- fprintf(m_output, " sensitivity=\"%d\"", elem.sensitivity);
+ out << util::string_format(" sensitivity=\"%d\"", elem.sensitivity);
if (elem.keydelta != 0)
- fprintf(m_output, " keydelta=\"%d\"", elem.keydelta);
+ out << util::string_format(" keydelta=\"%d\"", elem.keydelta);
if (elem.reverse)
- fprintf(m_output, " reverse=\"yes\"");
+ out << " reverse=\"yes\"";
- fprintf(m_output, "/>\n");
+ out << "/>\n";
}
else
{
@@ -1446,14 +1578,14 @@ void info_xml_creator::output_input(const ioport_list &portlist)
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));
+ out << util::string_format("\t\t\t<control type=\"%s%s\"", joys, normalize_string(elem.type));
if (nplayer > 1)
- fprintf(m_output, " player=\"%d\"", elem.player);
+ out << util::string_format(" player=\"%d\"", elem.player);
if (elem.nbuttons > 0)
{
- fprintf(m_output, " buttons=\"%d\"", strcmp(elem.type, "joy") ? elem.nbuttons : elem.maxbuttons);
+ out << util::string_format(" buttons=\"%d\"", strcmp(elem.type, "joy") ? elem.nbuttons : elem.maxbuttons);
if (elem.reqbuttons < elem.nbuttons)
- fprintf(m_output, " reqbuttons=\"%d\"", elem.reqbuttons);
+ out << util::string_format(" reqbuttons=\"%d\"", elem.reqbuttons);
}
for (int lp = 0; lp < 3 && elem.helper[lp] != 0; lp++)
{
@@ -1488,13 +1620,13 @@ void info_xml_creator::output_input(const ioport_list &portlist)
ways = "strange2";
break;
}
- fprintf(m_output, " ways%s=\"%s\"", plural, ways);
+ out << util::string_format(" ways%s=\"%s\"", plural, ways);
}
- fprintf(m_output, "/>\n");
+ out << "/>\n";
}
}
- fprintf(m_output, "\t\t</input>\n");
+ out << "\t\t</input>\n";
}
@@ -1503,7 +1635,7 @@ void info_xml_creator::output_input(const ioport_list &portlist)
// DIP switch settings
//-------------------------------------------------
-void info_xml_creator::output_switches(const ioport_list &portlist, const char *root_tag, int type, const char *outertag, const char *loctag, const char *innertag)
+void output_switches(std::ostream &out, const ioport_list &portlist, const char *root_tag, int type, const char *outertag, const char *loctag, const char *innertag)
{
// iterate looking for DIP switches
for (auto &port : portlist)
@@ -1514,41 +1646,41 @@ void info_xml_creator::output_switches(const ioport_list &portlist, const char *
newtag = newtag.substr(newtag.find(oldtag.append(root_tag)) + oldtag.length());
// output the switch name information
- std::string const normalized_field_name(util::xml::normalize_string(field.name()));
- std::string const normalized_newtag(util::xml::normalize_string(newtag.c_str()));
- fprintf(m_output, "\t\t<%s name=\"%s\" tag=\"%s\" mask=\"%u\">\n", outertag, normalized_field_name.c_str(), normalized_newtag.c_str(), field.mask());
+ std::string const normalized_field_name(normalize_string(field.name()));
+ std::string const normalized_newtag(normalize_string(newtag.c_str()));
+ out << util::string_format("\t\t<%s name=\"%s\" tag=\"%s\" mask=\"%u\">\n", outertag, normalized_field_name.c_str(), normalized_newtag.c_str(), field.mask());
if (!field.condition().none())
- output_ioport_condition(field.condition(), 3);
+ output_ioport_condition(out, field.condition(), 3);
// loop over locations
for (ioport_diplocation const &diploc : field.diplocations())
{
- fprintf(m_output, "\t\t\t<%s name=\"%s\" number=\"%u\"", loctag, util::xml::normalize_string(diploc.name()), diploc.number());
+ out << util::string_format("\t\t\t<%s name=\"%s\" number=\"%u\"", loctag, normalize_string(diploc.name()), diploc.number());
if (diploc.inverted())
- fprintf(m_output, " inverted=\"yes\"");
- fprintf(m_output, "/>\n");
+ out << " inverted=\"yes\"";
+ out << "/>\n";
}
// loop over settings
for (ioport_setting const &setting : field.settings())
{
- fprintf(m_output, "\t\t\t<%s name=\"%s\" value=\"%u\"", innertag, util::xml::normalize_string(setting.name()), setting.value());
+ out << util::string_format("\t\t\t<%s name=\"%s\" value=\"%u\"", innertag, normalize_string(setting.name()), setting.value());
if (setting.value() == field.defvalue())
- fprintf(m_output, " default=\"yes\"");
+ out << " default=\"yes\"";
if (setting.condition().none())
{
- fprintf(m_output, "/>\n");
+ out << "/>\n";
}
else
{
- fprintf(m_output, ">\n");
- output_ioport_condition(setting.condition(), 4);
- fprintf(m_output, "\t\t\t</%s>\n", innertag);
+ out << ">\n";
+ output_ioport_condition(out, setting.condition(), 4);
+ out << util::string_format("\t\t\t</%s>\n", innertag);
}
}
// terminate the switch entry
- fprintf(m_output, "\t\t</%s>\n", outertag);
+ out << util::string_format("\t\t</%s>\n", outertag);
}
}
@@ -1556,18 +1688,18 @@ void info_xml_creator::output_switches(const ioport_list &portlist, const char *
// output_ports - print the structure of input
// ports in the driver
//-------------------------------------------------
-void info_xml_creator::output_ports(const ioport_list &portlist)
+void output_ports(std::ostream &out, 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()));
+ out << util::string_format("\t\t<port tag=\"%s\">\n", normalize_string(port.second->tag()));
for (ioport_field const &field : port.second->fields())
{
if (field.is_analog())
- fprintf(m_output,"\t\t\t<analog mask=\"%u\"/>\n", field.mask());
+ out << util::string_format("\t\t\t<analog mask=\"%u\"/>\n", field.mask());
}
- fprintf(m_output,"\t\t</port>\n");
+ out << util::string_format("\t\t</port>\n");
}
}
@@ -1577,14 +1709,14 @@ void info_xml_creator::output_ports(const ioport_list &portlist)
// Adjusters for a game
//-------------------------------------------------
-void info_xml_creator::output_adjusters(const ioport_list &portlist)
+void output_adjusters(std::ostream &out, const ioport_list &portlist)
{
// iterate looking for Adjusters
for (auto &port : portlist)
for (ioport_field const &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());
+ out << util::string_format("\t\t<adjuster name=\"%s\" default=\"%d\"/>\n", normalize_string(field.name()), field.defvalue());
}
}
@@ -1593,9 +1725,9 @@ void info_xml_creator::output_adjusters(const ioport_list &portlist)
// output_driver - print driver status
//-------------------------------------------------
-void info_xml_creator::output_driver(game_driver const &driver, device_t::feature_type unemulated, device_t::feature_type imperfect)
+void output_driver(std::ostream &out, game_driver const &driver, device_t::feature_type unemulated, device_t::feature_type imperfect)
{
- fprintf(m_output, "\t\t<driver");
+ out << "\t\t<driver";
/*
The status entry is an hint for frontend authors to select working
@@ -1612,26 +1744,26 @@ void info_xml_creator::output_driver(game_driver const &driver, device_t::featur
bool const imperfect_preliminary((unemulated | imperfect) & device_t::feature::PROTECTION);
if (machine_preliminary || unemulated_preliminary || imperfect_preliminary)
- fprintf(m_output, " status=\"preliminary\"");
+ out << " status=\"preliminary\"";
else if (imperfect)
- fprintf(m_output, " status=\"imperfect\"");
+ out << " status=\"imperfect\"";
else
- fprintf(m_output, " status=\"good\"");
+ out << " status=\"good\"";
if (flags & machine_flags::NOT_WORKING)
- fprintf(m_output, " emulation=\"preliminary\"");
+ out << " emulation=\"preliminary\"";
else
- fprintf(m_output, " emulation=\"good\"");
+ out << " emulation=\"good\"";
if (flags & machine_flags::NO_COCKTAIL)
- fprintf(m_output, " cocktail=\"preliminary\"");
+ out << " cocktail=\"preliminary\"";
if (flags & machine_flags::SUPPORTS_SAVE)
- fprintf(m_output, " savestate=\"supported\"");
+ out << " savestate=\"supported\"";
else
- fprintf(m_output, " savestate=\"unsupported\"");
+ out << " savestate=\"unsupported\"";
- fprintf(m_output, "/>\n");
+ out << "/>\n";
}
@@ -1640,7 +1772,7 @@ void info_xml_creator::output_driver(game_driver const &driver, device_t::featur
//
//-------------------------------------------------
-void info_xml_creator::output_features(device_type type, device_t::feature_type unemulated, device_t::feature_type imperfect)
+void output_features(std::ostream &out, device_type type, device_t::feature_type unemulated, device_t::feature_type imperfect)
{
static constexpr std::pair<device_t::feature_type, char const *> features[] = {
{ device_t::feature::PROTECTION, "protection" },
@@ -1670,21 +1802,21 @@ void info_xml_creator::output_features(device_type type, device_t::feature_type
{
if (flags & feature.first)
{
- fprintf(m_output, "\t\t<feature type=\"%s\"", feature.second);
+ out << util::string_format("\t\t<feature type=\"%s\"", feature.second);
if (type.unemulated_features() & feature.first)
{
- fprintf(m_output, " status=\"unemulated\"");
+ out << " status=\"unemulated\"";
}
else
{
if (type.imperfect_features() & feature.first)
- fprintf(m_output, " status=\"imperfect\"");
+ out << " status=\"imperfect\"";
if (unemulated & feature.first)
- fprintf(m_output, " overall=\"unemulated\"");
+ out << " overall=\"unemulated\"";
else if ((~type.imperfect_features() & imperfect) & feature.first)
- fprintf(m_output, " overall=\"imperfect\"");
+ out << " overall=\"imperfect\"";
}
- fprintf(m_output, "/>\n");
+ out << "/>\n";
}
}
}
@@ -1695,7 +1827,7 @@ void info_xml_creator::output_features(device_type type, device_t::feature_type
// image devices
//-------------------------------------------------
-void info_xml_creator::output_images(device_t &device, const char *root_tag)
+void output_images(std::ostream &out, device_t &device, const char *root_tag)
{
for (const device_image_interface &imagedev : image_interface_iterator(device))
{
@@ -1706,46 +1838,47 @@ void info_xml_creator::output_images(device_t &device, const char *root_tag)
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()));
+ out << util::string_format("\t\t<device type=\"%s\"", 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()));
+ out << util::string_format(" tag=\"%s\"", normalize_string(newtag.c_str()));
// is this device available as media switch?
if (!loadable)
- fprintf(m_output, " fixed_image=\"1\"");
+ out << " fixed_image=\"1\"";
// is this device mandatory?
if (imagedev.must_be_loaded())
- fprintf(m_output, " mandatory=\"1\"");
+ out << " mandatory=\"1\"";
if (imagedev.image_interface() && imagedev.image_interface()[0])
- fprintf(m_output, " interface=\"%s\"", util::xml::normalize_string(imagedev.image_interface()));
+ out << util::string_format(" interface=\"%s\"", normalize_string(imagedev.image_interface()));
// close the XML tag
- fprintf(m_output, ">\n");
+ out << ">\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");
+ char const *const name = imagedev.instance_name().c_str();
+ char const *const shortname = imagedev.brief_instance_name().c_str();
- std::string extensions(imagedev.file_extensions());
+ out << "\t\t\t<instance";
+ out << util::string_format(" name=\"%s\"", normalize_string(name));
+ out << util::string_format(" briefname=\"%s\"", normalize_string(shortname));
+ out << "/>\n";
- char *ext = strtok((char *)extensions.c_str(), ",");
- while (ext != nullptr)
+ char const *extensions(imagedev.file_extensions());
+ while (extensions)
{
- fprintf(m_output, "\t\t\t<extension name=\"%s\"/>\n", util::xml::normalize_string(ext));
- ext = strtok(nullptr, ",");
+ char const *end(extensions);
+ while (*end && (',' != *end))
+ ++end;
+ out << util::string_format("\t\t\t<extension name=\"%s\"/>\n", normalize_string(std::string(extensions, end).c_str()));
+ extensions = *end ? (end + 1) : nullptr;
}
}
- fprintf(m_output, "\t\t</device>\n");
+ out << "\t\t</device>\n";
}
}
}
@@ -1755,7 +1888,7 @@ void info_xml_creator::output_images(device_t &device, const char *root_tag)
// output_slots - 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)
+void output_slots(std::ostream &out, machine_config &config, device_t &device, const char *root_tag, device_type_set *devtypes)
{
for (device_slot_interface &slot : slot_interface_iterator(device))
{
@@ -1770,7 +1903,7 @@ void info_xml_creator::output_slots(machine_config &config, device_t &device, co
// print m_output device type
if (listed)
- fprintf(m_output, "\t\t<slot name=\"%s\">\n", util::xml::normalize_string(newtag.c_str()));
+ out << util::string_format("\t\t<slot name=\"%s\">\n", normalize_string(newtag.c_str()));
for (auto &option : slot.option_list())
{
@@ -1785,11 +1918,11 @@ void info_xml_creator::output_slots(machine_config &config, device_t &device, co
if (listed && option.second->selectable())
{
- fprintf(m_output, "\t\t\t<slotoption name=\"%s\"", util::xml::normalize_string(option.second->name()));
- fprintf(m_output, " devname=\"%s\"", util::xml::normalize_string(dev->shortname()));
+ out << util::string_format("\t\t\t<slotoption name=\"%s\"", normalize_string(option.second->name()));
+ out << util::string_format(" devname=\"%s\"", 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");
+ out << " default=\"yes\"";
+ out << "/>\n";
}
config.device_remove("_dummy");
@@ -1797,7 +1930,7 @@ void info_xml_creator::output_slots(machine_config &config, device_t &device, co
}
if (listed)
- fprintf(m_output, "\t\t</slot>\n");
+ out << "\t\t</slot>\n";
}
}
}
@@ -1808,14 +1941,14 @@ void info_xml_creator::output_slots(machine_config &config, device_t &device, co
// for all known software lists for this system
//-------------------------------------------------
-void info_xml_creator::output_software_list(device_t &root)
+void output_software_list(std::ostream &out, device_t &root)
{
for (const software_list_device &swlist : software_list_device_iterator(root))
{
- fprintf(m_output, "\t\t<softwarelist name=\"%s\" status=\"%s\"", util::xml::normalize_string(swlist.list_name().c_str()), (swlist.list_type() == SOFTWARE_LIST_ORIGINAL_SYSTEM) ? "original" : "compatible");
+ out << util::string_format("\t\t<softwarelist name=\"%s\" status=\"%s\"", normalize_string(swlist.list_name().c_str()), (swlist.list_type() == SOFTWARE_LIST_ORIGINAL_SYSTEM) ? "original" : "compatible");
if (swlist.filter())
- fprintf(m_output, " filter=\"%s\"", util::xml::normalize_string(swlist.filter()));
- fprintf(m_output, "/>\n");
+ out << util::string_format(" filter=\"%s\"", normalize_string(swlist.filter()));
+ out << "/>\n";
}
}
@@ -1826,7 +1959,7 @@ void info_xml_creator::output_software_list(device_t &root)
// options for this system
//-------------------------------------------------
-void info_xml_creator::output_ramoptions(device_t &root)
+void output_ramoptions(std::ostream &out, device_t &root)
{
for (const ram_device &ram : ram_device_iterator(root, 1))
{
@@ -1840,15 +1973,15 @@ void info_xml_creator::output_ramoptions(device_t &root)
{
assert(!havedefault);
havedefault = true;
- fprintf(m_output, "\t\t<ramoption name=\"%s\" default=\"yes\">%u</ramoption>\n", util::xml::normalize_string(option.first.c_str()), option.second);
+ out << util::string_format("\t\t<ramoption name=\"%s\" default=\"yes\">%u</ramoption>\n", normalize_string(option.first.c_str()), option.second);
}
else
{
- fprintf(m_output, "\t\t<ramoption name=\"%s\">%u</ramoption>\n", util::xml::normalize_string(option.first.c_str()), option.second);
+ out << util::string_format("\t\t<ramoption name=\"%s\">%u</ramoption>\n", normalize_string(option.first.c_str()), option.second);
}
}
if (!havedefault)
- fprintf(m_output, "\t\t<ramoption name=\"%s\" default=\"yes\">%u</ramoption>\n", ram.default_size_string(), defsize);
+ out << util::string_format("\t\t<ramoption name=\"%s\" default=\"yes\">%u</ramoption>\n", ram.default_size_string(), defsize);
break;
}
}
@@ -1860,10 +1993,10 @@ void info_xml_creator::output_ramoptions(device_t &root)
// parent set
//-------------------------------------------------
-const char *info_xml_creator::get_merge_name(driver_enumerator &drivlist, util::hash_collection const &romhashes)
+const char *get_merge_name(driver_enumerator &drivlist, const game_driver &driver, util::hash_collection const &romhashes)
{
// walk the parent chain
- for (int clone_of = drivlist.find(drivlist.driver().parent); 0 <= clone_of; clone_of = drivlist.find(drivlist.driver(clone_of).parent))
+ for (int clone_of = drivlist.find(driver.parent); 0 <= clone_of; clone_of = drivlist.find(drivlist.driver(clone_of).parent))
{
// look in the parent's ROMs
for (romload::region const &pregion : romload::entries(drivlist.driver(clone_of).rom).get_regions())
@@ -1880,3 +2013,15 @@ const char *info_xml_creator::get_merge_name(driver_enumerator &drivlist, util::
return nullptr;
}
+
+
+//-------------------------------------------------
+// device_type_compare::operator()
+//-------------------------------------------------
+
+bool device_type_compare::operator()(const std::add_pointer_t<device_type> &lhs, const std::add_pointer_t<device_type> &rhs) const
+{
+ return strcmp(lhs->shortname(), rhs->shortname()) < 0;
+}
+
+}
diff --git a/docs/release/src/hbmame/drivers/cinemat.cpp b/docs/release/src/hbmame/drivers/cinemat.cpp
index d19f904e6d3..3ee3bb60250 100644
--- a/docs/release/src/hbmame/drivers/cinemat.cpp
+++ b/docs/release/src/hbmame/drivers/cinemat.cpp
@@ -13,6 +13,10 @@ Pressing any player key, or start button will make a slight change to the colour
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.
+2019-08-15 It seems the 3 boxes are representations of the 3 ram chips. A rectangle indicates
+ram tested ok. A forward slash indicates ram was stuck at 0. A backslash indicates ram was stuck
+at 1. And X indicates ram couldn't be reliably tested.
+
*/
@@ -38,7 +42,7 @@ public:
*************************************/
ROM_START( bbugtest )
- ROM_REGION( 0x10000, "maincpu", 0 ) /* 16k for code */
+ ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD16_BYTE( "bbugtest.t7", 0x0000, 0x1000, CRC(92a460f1) SHA1(eaa8fea38d87f1fd6e2e52b92085fed43498e5ce) )
ROM_LOAD16_BYTE( "bbugtest.p7", 0x0001, 0x1000, CRC(06d0bde2) SHA1(b0a224b7a74fa739b293ad7383236ffaa012f3c3) )
@@ -51,4 +55,84 @@ ROM_START( bbugtest )
ROM_LOAD("prom.e8", 0x180, 0x020, CRC(791ec9e1) SHA1(6f7fcce4aa3be9020595235568381588adaab88e) )
ROM_END
-GAME(1981, bbugtest, 0, boxingb, boxingb, cinemat_hbmame, init_bbugtest, ORIENTATION_FLIP_Y, "Test Rom", "Test Rom - Boxing Bugs", MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE )
+ROM_START( bbugtest1 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "bbugtest1.t7", 0x0000, 0x1000, CRC(53154517) SHA1(63b21f7548dcd1de9ca193fe82ba768a2949a747) )
+ ROM_LOAD16_BYTE( "bbugtest1.p7", 0x0001, 0x1000, CRC(ac5a63ee) SHA1(45b2940929a06e65cca8d50d79bdbda8acc6c628) )
+
+ 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, boxingb, boxingb, cinemat_hbmame, init_bbugtest, ORIENTATION_FLIP_Y, "Test Rom", "Test Rom - Boxing Bugs", MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE )
+GAME(2018, bbugtest1, bbugtest, boxingb, boxingb, cinemat_hbmame, init_bbugtest, ORIENTATION_FLIP_Y, "Timothy Shiels", "Test Rom - Cinematic", MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE )
+
+// WARRIOR modifications. See http://www.outerworldarcade.com/arcade/cinematronics/mods/warrior/warrior_4j_mod.html
+
+static INPUT_PORTS_START( warrior4j )
+ PORT_START("INPUTS")
+ // Player 2 movement
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_PLAYER(2)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_PLAYER(2)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_PLAYER(2)
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_PLAYER(2)
+ // Player 2 sword
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_RIGHT ) PORT_PLAYER(2) // WAS FIRE
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_LEFT ) PORT_PLAYER(2)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_PLAYER(2)
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_PLAYER(2)
+ // Player 1 movement
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_PLAYER(1)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_PLAYER(1)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_PLAYER(1)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_PLAYER(1)
+ // Player 1 sword
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_RIGHT ) PORT_PLAYER(1) // WAS FIRE
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_LEFT ) PORT_PLAYER(1)
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_PLAYER(1)
+ PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_PLAYER(1)
+
+ PORT_START("SWITCHES")
+ PORT_DIPNAME( 0x03, 0x02, "Time" ) PORT_DIPLOCATION("SW1:!1,!2")
+ PORT_DIPSETTING( 0x00, "0:30/coin" )
+ PORT_DIPSETTING( 0x02, "1:00/coin" )
+ PORT_DIPSETTING( 0x01, "1:30/coin" )
+ PORT_DIPSETTING( 0x03, "2:00/coin" )
+ PORT_SERVICE_DIPLOC( 0x04, IP_ACTIVE_HIGH, "SW1:!3" )
+ PORT_DIPNAME( 0x08, 0x08, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:!4")
+ PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( 1C_1C ) )
+ PORT_DIPUNUSED_DIPLOC( 0x10, IP_ACTIVE_HIGH, "SW1:!5" )
+ PORT_DIPUNUSED_DIPLOC( 0x20, IP_ACTIVE_HIGH, "SW1:!6" )
+ PORT_DIPUNUSED_DIPLOC( 0x40, IP_ACTIVE_HIGH, "SW1:!7" )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, cinemat_state,coin_inserted, 0)
+INPUT_PORTS_END
+
+ROM_START( warrior4j1 )
+ ROM_REGION( 0x2000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "warrior4j1.t7", 0x0000, 0x0800, CRC(2794ae97) SHA1(d247591a628682c4bf05af8e214a421c6aad27ac) )
+ ROM_LOAD16_BYTE( "warrior4j1.p7", 0x0001, 0x0800, CRC(0174aec4) SHA1(763d9518eb10c48dbad8f1bc445a20dbc1e283cd) )
+ ROM_LOAD16_BYTE( "warrior4j1.u7", 0x1000, 0x0800, CRC(aa9c5a41) SHA1(15a78813bde8b90dc2431de9c74a5162e6cc81b0) )
+ ROM_LOAD16_BYTE( "warrior4j1.r7", 0x1001, 0x0800, CRC(6bd52cdd) SHA1(c702cac293703dc5abf8c9d4f1b4d9b183ebacf7) )
+
+ CCPU_PROMS
+ROM_END
+
+ROM_START( warrior4j2 )
+ ROM_REGION( 0x2000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "warrior4j2.t7", 0x0000, 0x0800, CRC(fdf360c8) SHA1(4a1eb1d38a0a1523e1b5da5f95011136ed34e0ab) )
+ ROM_LOAD16_BYTE( "warrior4j2.p7", 0x0001, 0x0800, CRC(b9b94d47) SHA1(18964b0c05841003d0b67a08f4f5760122668dce) )
+ ROM_LOAD16_BYTE( "warrior4j2.u7", 0x1000, 0x0800, CRC(f7de23b2) SHA1(a5e2efbfa10e0aaf081f81b1c88ab0042b6b7126) )
+ ROM_LOAD16_BYTE( "warrior4j2.r7", 0x1001, 0x0800, CRC(ba00c108) SHA1(3b37f24bc66ba9607dc11655bbbd8f53bd77cda5) )
+
+ CCPU_PROMS
+ROM_END
+
+GAME(2014, warrior4j1, warrior, warrior, warrior4j, cinemat_state, empty_init, ORIENTATION_FLIP_Y, "Timothy Shiels", "Warrior (4 joysticks, v1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME(2014, warrior4j2, warrior, warrior, warrior4j, cinemat_state, empty_init, ORIENTATION_FLIP_Y, "Timothy Shiels", "Warrior (4 joysticks, v2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+
diff --git a/docs/release/src/hbmame/drivers/cps1mis.cpp b/docs/release/src/hbmame/drivers/cps1mis.cpp
index 34726d0a685..457a70ebf20 100644
--- a/docs/release/src/hbmame/drivers/cps1mis.cpp
+++ b/docs/release/src/hbmame/drivers/cps1mis.cpp
@@ -8348,6 +8348,114 @@ ROM_START( captcomms60 ) //captcommu
ROM_LOAD ( "captcomm.key", 0x00, 0x80, CRC(3bd9c940) SHA1(8964479f402ce7e000f1da8b3f6386e6915269e1) )
ROM_END
+ROM_START( captcomms61 )
+ ROM_REGION( 0X400000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ccs61.10f", 0x000000, 0x300000, CRC(87157218) SHA1(79217809f4868a9dfb893929f9cb51eff01dc89f) )
+
+ 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", 0x00, 0x80, CRC(3bd9c940) SHA1(8964479f402ce7e000f1da8b3f6386e6915269e1) )
+ROM_END
+
+ROM_START( captcomms62 )
+ ROM_REGION( 0X400000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ccs62.10f", 0x000000, 0x300000, CRC(1f8f4d38) SHA1(40a74a6775ae52f3f3e905a5b2105088f106ef31) )
+ ROM_IGNORE( 0x24DA )
+
+ 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", 0x00, 0x80, CRC(3bd9c940) SHA1(8964479f402ce7e000f1da8b3f6386e6915269e1) )
+ROM_END
+
+ROM_START( captcomms63 )
+ ROM_REGION( 0X400000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ccs63.10f", 0x000000, 0x300000, CRC(3edc20bc) SHA1(fbdeaa2992c8e757650158ea1e8eeda2045b9ab7) )
+
+ 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", 0x00, 0x80, CRC(3bd9c940) SHA1(8964479f402ce7e000f1da8b3f6386e6915269e1) )
+ROM_END
+
+ROM_START( captcomms64 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ccs64.8f", 0x000000, 0x80000, CRC(9014983d) SHA1(0204ff69f36c7f44188260ee28759ce1cdd80a77) )
+ ROM_LOAD16_WORD_SWAP( "ccs64.7f", 0x080000, 0x80000, CRC(00af068d) SHA1(d7017ede0a224390b0c85e894b219fe8109d1800) )
+ ROM_LOAD16_BYTE( "ccs64.9e", 0x100000, 0x20000, CRC(936ed25e) SHA1(fda6d96102a1720b361fb7ae1ffb88fc01c0cc83) )
+ ROM_LOAD16_BYTE( "ccs64.9f", 0x100001, 0x20000, CRC(c3448a39) SHA1(fe64bc3781752cbd2d9ac24bd43507ec400ec2f4) )
+
+ 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", 0x00, 0x80, CRC(3bd9c940) SHA1(8964479f402ce7e000f1da8b3f6386e6915269e1) )
+ROM_END
+
/************************
Cadillacs And Dinosaurs
**************************/
@@ -13571,6 +13679,242 @@ ROM_START( dinos193 ) //dinoqmgw
ROM_LOAD ( "dino.key", 0x00, 0x80, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
ROM_END
+ROM_START( dinos194 ) //dinojds
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "cdes194.10f", 0x000000, 0x400000, CRC(ab060eeb) SHA1(59bb0ce3b5ca2ebb1dc9668f79aa4dd8c5fac7ed) )
+
+ 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 )
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 )
+ 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", 0x00, 0x80, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos195 ) //dinoly
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "cdes195.23", 0x000000, 0x080000, CRC(6f992901) SHA1(b825b025073ec59c1e815f10ed907904ac05aa96) )
+ ROM_LOAD16_WORD_SWAP( "cdes195.22", 0x080000, 0x080000, CRC(273dacc8) SHA1(9347986594c8e3b15ac6dc4efb1aaa36a5adcd95) )
+ ROM_LOAD16_WORD_SWAP( "cdes195.21", 0x100000, 0x080000, CRC(982543a0) SHA1(9ec0da9ffd7bf324cd7ab377870b025a8c20ff1e) )
+
+ 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 )
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 )
+ 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", 0x00, 0x80, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos196 ) //dinowj
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "cdes196.23", 0x000000, 0x080000, CRC(b8b5025f) SHA1(dba8e7e2ec0ace5fe592349376dd1f954e36bc9d) )
+ ROM_LOAD16_WORD_SWAP( "cdes196.22", 0x080000, 0x080000, CRC(10fb1411) SHA1(e49bf107709f7ff71562b56fb905bb5563711117) )
+ ROM_LOAD16_WORD_SWAP( "cdes196.21", 0x100000, 0x080000, CRC(f198f7d4) SHA1(baea9c9e9da325e4c2c5f086af232c92e7610c8d) )
+
+ 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 )
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 )
+ 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", 0x00, 0x80, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos197 ) //dinoxz
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "cdes197.23", 0x000000, 0x080000, CRC(1b9c735d) SHA1(48f835793af142cdd35934ab9aed5240b1692b2b) )
+ ROM_LOAD16_WORD_SWAP( "cdes197.22", 0x080000, 0x080000, CRC(9742f2c0) SHA1(729a8fb1c641b577e96ac77356f69eb41c0563f5) )
+ ROM_LOAD16_WORD_SWAP( "cdes197.21", 0x100000, 0x080000, CRC(75f44d00) SHA1(c3164acff791f123498594c388de7b571445be85) )
+
+ 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 )
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 )
+ 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", 0x00, 0x80, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos198 ) //dinoyz
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "cdes198.10f", 0x000000, 0x400000, CRC(8896768c) SHA1(6c7f7821b94d84900d6b27d5375a05203c3a8cbe) )
+
+ 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 )
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 )
+ 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", 0x00, 0x80, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos199 ) //dinov3p
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "cdes198.23", 0x000000, 0x080000, CRC(3894c5d8) SHA1(122434b4dfb597ffd7df0edcbb9c3e1d50a50770) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x080000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cdes198.21", 0x100000, 0x080000, CRC(7873aab5) SHA1(6ead9a63d296412672c3fcbd19ea7ce1b6780a73) )
+
+ 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 )
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 )
+ 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", 0x00, 0x80, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos200 ) //dinowjb
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "cdes199.23", 0x000000, 0x080000, CRC(d1b1b46c) SHA1(659014251edea670a3e9d5eb95f87a48ac0e7343) )
+ ROM_LOAD16_WORD_SWAP( "cdes199.7f", 0x080000, 0x080000, CRC(894dfd57) SHA1(a6ce1bf202d6fe3ab26209c96a0882e5d18a5936) )
+ ROM_LOAD16_WORD_SWAP( "cdes199.21", 0x100000, 0x080000, CRC(2608ed1d) SHA1(41249f90872aa48ec960fb72d295b88f6a9b7003) )
+
+ 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 )
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 )
+ 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", 0x00, 0x80, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos201 ) //dinowjc
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "cdes200.23", 0x000000, 0x080000, CRC(3bf20278) SHA1(6503ee34985bf51ace28cbbb3d00b6d58ebb9d8e) )
+ ROM_LOAD16_WORD_SWAP( "cdes199.7f", 0x080000, 0x080000, CRC(894dfd57) SHA1(a6ce1bf202d6fe3ab26209c96a0882e5d18a5936) )
+ ROM_LOAD16_WORD_SWAP( "cdes200.21", 0x100000, 0x080000, CRC(f27d1f8a) SHA1(797339bc35b9fcfa61a7d4fadd268cf20c591c01) )
+
+ 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 )
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 )
+ 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", 0x00, 0x80, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
/************
Final Fight
**************/
@@ -20604,6 +20948,148 @@ ROM_START( tk2h139 )
ROM_LOAD ( "wof.key", 0x00, 0x80, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
ROM_END
+ROM_START( tk2h140 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2h140.10f", 0x000000, 0x200000, CRC(d31c8b42) SHA1(a4b71c951f4e36f8702ccc64896bc9d19fe4567a) )
+
+ 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( "tk2h140.7a", 0x200000, 0x80000, CRC(e3c8c198) SHA1(f31f9f5c41d94ff84d29ed787d9104ee3fc1a7aa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2h140.8a", 0x200002, 0x80000, CRC(5e3c0642) SHA1(8ee6834b1d497c4e4724b1db48d61df558fd0e93) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2h140.9a", 0x200004, 0x80000, CRC(d65a91d9) SHA1(4e1fa66c25fb4e28e49a458500089094cb54a308) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2h140.10a", 0x200006, 0x80000, CRC(675d490e) SHA1(180deb2aff5c2e35cc0eaaed8e6d5d490beaa5ea) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 )
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 )
+ 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", 0x00, 0x80, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2h141 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2h141.10f", 0x000000, 0x200000, CRC(68c9fae1) SHA1(cf0d35ac3dc36012aaefa8f90e7ed923aab4de7e) )
+
+ 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( "tk2h141.7a", 0x200000, 0x80000, CRC(6a1b1784) SHA1(dfb935c27c248d8ac50c6bba97eabef5bcbfc72d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2h141.8a", 0x200002, 0x80000, CRC(266ee41f) SHA1(be8c63dd629940b8c52a5a2c1e2986a5b7992393) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2h141.9a", 0x200004, 0x80000, CRC(e9a0468e) SHA1(68a1852e6419729dc67eaf758c9215af5a6c37a4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2h141.10a", 0x200006, 0x80000, CRC(19d7d078) SHA1(8be71a7bb810c8f16024e490d597be4b40a0d1cd) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 )
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 )
+ 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", 0x00, 0x80, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2h142 ) //wofjxz
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2h142.23", 0x000000, 0x80000, CRC(5bf83942) SHA1(3fb4a7dcd3bc89677d8cb910e279eb1bbd7d4bf0) )
+ ROM_LOAD16_WORD_SWAP( "tk2h142.7f", 0x080000, 0x80000, CRC(96fc801e) SHA1(f24e7a05f2fe43ff9aa38407a4f32d3b70a858d6) )
+
+ 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( "tk2jtkh124.7a", 0x200000, 0x80000, CRC(2d9c0bd4) SHA1(cd9046774203556274b4e1f59b54acd45a38f6fc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2jtkh124.8a", 0x200002, 0x80000, CRC(45c3a4a1) SHA1(92563f7207bea29dccc68dabf950366c5abfb84b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2jtkh124.9a", 0x200004, 0x80000, CRC(b905dc00) SHA1(b79add016f943f14dbf486bb7b34e06dbba6e4bf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2jtkh124.10a", 0x200006, 0x80000, CRC(6af56439) SHA1(65dc1048929c499bd6c3b7fbcec35a8ff0896cf7) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 )
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 )
+ 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", 0x00, 0x80, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2h143 ) //wofjdrdz
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2h143.10f", 0x000000, 0x200000, CRC(2ffe9b79) SHA1(a10340732a6fde30fda3de5de60c23a89840a84b) )
+
+ 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( "tk2h141.7a", 0x200000, 0x80000, CRC(6a1b1784) SHA1(dfb935c27c248d8ac50c6bba97eabef5bcbfc72d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2h141.8a", 0x200002, 0x80000, CRC(266ee41f) SHA1(be8c63dd629940b8c52a5a2c1e2986a5b7992393) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2h141.9a", 0x200004, 0x80000, CRC(e9a0468e) SHA1(68a1852e6419729dc67eaf758c9215af5a6c37a4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2h141.10a", 0x200006, 0x80000, CRC(19d7d078) SHA1(8be71a7bb810c8f16024e490d597be4b40a0d1cd) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 )
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 )
+ 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", 0x00, 0x80, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2h144 ) //wofjryu
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2h144.23", 0x000000, 0x80000, CRC(de6a89fd) SHA1(55f347458fc89ec33f23a7a4f2ca29623484cca7) )
+ ROM_LOAD16_WORD_SWAP( "tk2h144.7f", 0x080000, 0x80000, CRC(9d5f6b2b) SHA1(3927276ac2fdac041de8a0dcda590a7bd385c2ac) )
+
+ 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 )
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 )
+ 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", 0x00, 0x80, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
/********************
Tenchi wo Kurau II
*********************/
@@ -22760,6 +23246,10 @@ HACK( 2019, captcomms57, captcomm, cps1_10MHz, captcomm, cps_state, cps1,
HACK( 2019, captcomms58, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "Unknown", "Captain Commando (Infinity bullet Update 2019-04-15)", MACHINE_SUPPORTS_SAVE )
HACK( 2019, captcomms59, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "Unknown", "Captain Commando (Dream Version 2019-04-15)", MACHINE_SUPPORTS_SAVE )
HACK( 2019, captcomms60, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "Unknown", "Captain Commando (Enhanced Edition 2019-05-30)" , MACHINE_SUPPORTS_SAVE )
+HACK( 2019, captcomms61, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "GOTVG", "Captain Commando (Elite Version 2019-05-13)" , MACHINE_SUPPORTS_SAVE )
+HACK( 2019, captcomms62, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "GOTVG", "Captain Commando (Nightmare 2019-06-06)" , MACHINE_SUPPORTS_SAVE )
+HACK( 2019, captcomms63, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "GOTVG", "Captain Commando (Shape Shifting Version 2019-05-05)" , MACHINE_SUPPORTS_SAVE )
+HACK( 2019, captcomms64, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "Unknown", "Captain Commando (Caller Mount Version 2019-08-02)" , MACHINE_SUPPORTS_SAVE )
// Cadillacs And Dinosaurs
HACK( 1993, dinos01, dino, qsound, dino, cps_state, dino, ROT0, "Ydmis", "Cadillacs and Dinosaurs (Weapon Items Bazooka)", MACHINE_SUPPORTS_SAVE )
HACK( 1993, dinos02, dino, qsound, dino, cps_state, dino, ROT0, "Ydmis", "Cadillacs and Dinosaurs (Weapon Items Club)", MACHINE_SUPPORTS_SAVE )
@@ -22937,6 +23427,14 @@ HACK( 2019, dinos190, dino, qsound, dino, cps_state, dino,
HACK( 2019, dinos191, dino, qsound, dino, cps_state, dino, ROT0, "Unknown", "Cadillacs and Dinosaurs (Fast Fighting version Update 2019-04-15)", MACHINE_SUPPORTS_SAVE )
HACK( 2019, dinos192, dino, qsound, dino, cps_state, dino, ROT0, "Unknown", "Cadillacs and Dinosaurs (God of War Update 2019-05-30)", MACHINE_SUPPORTS_SAVE )
HACK( 2019, dinos193, dino, qsound, dino, cps_state, dino, ROT0, "Unknown", "Cadillacs and Dinosaurs (Group Demon Dance Version 2019-05-30)", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, dinos194, dino, qsound, dino, cps_state, dino, ROT0, "GOTVG", "Cadillacs and Dinosaurs (Fighting God Version 2019-06-12)", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, dinos195, dino, qsound, dino, cps_state, dino, ROT0, "GOTVG", "Cadillacs and Dinosaurs (Purgatory 2019-04-21)", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, dinos196, dino, qsound, dino, cps_state, dino, ROT0, "GOTVG", "Cadillacs and Dinosaurs (Majin Ranbu 2019-02-22)", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, dinos197, dino, qsound, dino, cps_state, dino, ROT0, "GOTVG", "Cadillacs and Dinosaurs (Warlord Version 2019-05-30)", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, dinos198, dino, qsound, dino, cps_state, dino, ROT0, "GOTVG", "Cadillacs and Dinosaurs (Warriors 2019-05-02)", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, dinos199, dino, qsound, dino, cps_state, dino, ROT0, "Unknown", "Cadillacs and Dinosaurs (1V3 Enhanced Version 2019 2019-08-02)", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, dinos200, dino, qsound, dino, cps_state, dino, ROT0, "Unknown", "Cadillacs and Dinosaurs (Devil dance Series A 2019-07-30)", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, dinos201, dino, qsound, dino, cps_state, dino, ROT0, "Unknown", "Cadillacs and Dinosaurs (Devil dance Series B 2019-07-30)", MACHINE_SUPPORTS_SAVE )
// Final Fight
HACK( 1990, ffights01, ffight, cps1_10MHz, ffight, cps_state, cps1, ROT0, "ckc7213", "Final Fight (Change Fighter)", MACHINE_SUPPORTS_SAVE )
HACK( 2016, ffights02, ffight, cps1_10MHz, ffight, cps_state, cps1, ROT0, "Unknown", "Final Fight (1VS2 Enhanced Version 2016-08-17)", MACHINE_SUPPORTS_SAVE )
@@ -23174,6 +23672,11 @@ HACK( 2019, tk2h136, wof, qsound, wof, cps_state, wof,
HACK( 2017, tk2h137, wof, qsound, wof, cps_state, wof, ROT0, "Unknown", "Tenchi wo Kurau II (War On Horseback 2017-11-20)", MACHINE_SUPPORTS_SAVE )
HACK( 2019, tk2h138, wof, qsound, wof, cps_state, wof, ROT0, "Unknown", "Tenchi wo Kurau II (Daren Edition Update 2019-04-15)", MACHINE_SUPPORTS_SAVE )
HACK( 2019, tk2h139, wof, qsound, wof, cps_state, wof, ROT0, "Unknown", "Tenchi wo Kurau II (Three US Edition 1v3 2019-05-01)", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, tk2h140, wof, qsound, wof, cps_state, wof, ROT0, "GOTVG", "Tenchi wo Kurau II (Master Version 2019-05-06)", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, tk2h141, wof, qsound, wof, cps_state, wof, ROT0, "GOTVG", "Tenchi wo Kurau II (Fighting Spirit 2019-05-06)", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, tk2h142, wof, qsound, wof, cps_state, wof, ROT0, "Unknown", "Tenchi wo Kurau II (Xu Wei Musou Edition 2019-08-14)", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, tk2h143, wof, qsound, wof, cps_state, wof, ROT0, "Unknown", "Tenchi wo Kurau II (Daren Fighting Edition 2019-08-02)", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, tk2h144, wof, qsound, wof, cps_state, wof, ROT0, "Unknown", "Tenchi wo Kurau II (Dragon Edition 2019-07-14)", MACHINE_SUPPORTS_SAVE )
// Tenchi wo Kurau II (wofch)
HACK( 1994, tk2p02, wofch, qsound, wofch, cps_state, wof, ROT0, "Katana", "Tenchi wo Kurau II (Boss Rush)", MACHINE_SUPPORTS_SAVE )
HACK( 1994, tk2p03, wofch, qsound, wofch, cps_state, wof, ROT0, "Katana", "Tenchi wo Kurau II (Boss Rush Extreme 2018-06-18)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/cps2mis.cpp b/docs/release/src/hbmame/drivers/cps2mis.cpp
index 0bad842bc3d..0a848ada65f 100644
--- a/docs/release/src/hbmame/drivers/cps2mis.cpp
+++ b/docs/release/src/hbmame/drivers/cps2mis.cpp
@@ -3705,6 +3705,38 @@ ROM_START( sfa2us04 )
ROM_LOAD( "sfa2.key", 0x000000, 0x000014, CRC(1578dcb0) SHA1(a8bc83b341f9ea2bcc18861419bd574d159c6fcc) )
ROM_END
+ROM_START( sfz2ns01 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sz2ns01.03", 0x000000, 0x80000, CRC(b37eb6d8) SHA1(f36d88d9f5af823cb953b66dfdb635f2d92c73b4) )
+ ROM_LOAD16_WORD_SWAP( "sz2ns01.04", 0x080000, 0x80000, CRC(a2776d86) SHA1(6f0f348d4b08468e034ecf11ff42f190bc68f490) )
+ 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( "sz2ns01.07", 0x200000, 0x80000, CRC(c300b32a) SHA1(9e3f97a18da91bc780de331390ac0aa2ff293e93) )
+ 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 )
+ 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 )
+ 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", 0x00, 0x14, CRC(1578dcb0) SHA1(a8bc83b341f9ea2bcc18861419bd574d159c6fcc) )
+ROM_END
+
/**********************
Street Fighter Alpha 3
*************************/
@@ -5431,6 +5463,7 @@ HACK( 1996, sfa2us01, sfa2, cps2, cps2_2p6b, cps2_state, cps2, ROT0,
HACK( 2008, sfa2us02, sfa2, cps2, cps2_2p6b, cps2_state, cps2, ROT0, "pipi899", "Street Fighter Alpha 2 (Super Killing Force Modification 2008-02-17)", MACHINE_SUPPORTS_SAVE )
HACK( 1996, sfa2us03, sfa2, cps2, cps2_2p6b, cps2_state, cps2, ROT0, "Unknown", "Street Fighter Alpha 2 (Cancellation Power)", MACHINE_SUPPORTS_SAVE )
HACK( 1996, sfa2us04, sfa2, cps2, cps2_2p6b, cps2_state, cps2, ROT0, "Unknown", "Street Fighter Alpha 2 (Simplified)", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, sfz2ns01, sfa2, cps2, cps2_2p6b, cps2_state, cps2, ROT0, "GOTVG", "Street Fighter Zero 2 (Crazy Edition 2019-04-10)", MACHINE_SUPPORTS_SAVE )
// Street Fighter Alpha 3
HACK( 2009, sfa3s01, sfa3, cps2, cps2_2p6b, cps2_state, cps2, ROT0, "pipi899", "Street Fighter Alpha 3 (Modified Version Of The Directive 2009-05-10)", MACHINE_SUPPORTS_SAVE )
HACK( 1998, sfa3s02, sfa3, cps2, cps2_2p6b, cps2_state, cps2, ROT0, "shiro", "Street Fighter Alpha 3 (Simplified)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/jrpacman.cpp b/docs/release/src/hbmame/drivers/jrpacman.cpp
index 999180916e7..d28eab1a33f 100644
--- a/docs/release/src/hbmame/drivers/jrpacman.cpp
+++ b/docs/release/src/hbmame/drivers/jrpacman.cpp
@@ -214,7 +214,7 @@ static INPUT_PORTS_START( jrpacman )
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_CHANGED_MEMBER(DEVICE_SELF, jrpacman_state, pacman_fake, nullptr)
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME( "Speed (Cheat)" ) PORT_CHANGED_MEMBER(DEVICE_SELF, jrpacman_state, pacman_fake, 0)
PORT_DIPNAME( 0x06, 0x02, "Speed Cheat" )
PORT_DIPSETTING( 0x00, "Disabled" )
PORT_DIPSETTING( 0x02, "Enabled with Button" )
diff --git a/docs/release/src/hbmame/drivers/kof2002.cpp b/docs/release/src/hbmame/drivers/kof2002.cpp
index c13bf92309a..b2018271d22 100644
--- a/docs/release/src/hbmame/drivers/kof2002.cpp
+++ b/docs/release/src/hbmame/drivers/kof2002.cpp
@@ -11553,6 +11553,40 @@ ROM_START( kof2k2s82 ) // KOF2k2plus2017v2
ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
ROM_END
+ROM_START( kof2k2s83 ) //kofallmix
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265k2s83.p1", 0x000000, 0x100000, CRC(945c70cb) SHA1(7cbfae9d6fbe9b70b9105563c7617d36f10196fc) )
+ ROM_LOAD16_WORD_SWAP( "265k2s83.p2", 0x100000, 0x800000, CRC(9daf65b8) SHA1(8426ad697494193f54f2d3b050c3cc6113eed0d8) )
+
+ 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( "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( 0x8000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265k2s58.c1", 0x0000000, 0x800000, CRC(7f4e7f53) SHA1(00ea5486846751feb967128fbcc3b72847c42e99) ) // bad dump
+ ROM_LOAD16_BYTE( "265k2s58.c2", 0x0000001, 0x800000, CRC(fbb6e56f) SHA1(f5b6c75acbe69ef3b326a33b0b467c85b6a23369) ) // bad dump
+ ROM_LOAD16_BYTE( "265k2s58.c3", 0x1000000, 0x800000, CRC(c17e12d8) SHA1(0ddb8ade8265dd254e893e2beedbe7c0604cce6b) )
+ ROM_LOAD16_BYTE( "265k2s58.c4", 0x1000001, 0x800000, CRC(5b9dd220) SHA1(a3f8793cb2fc1ae9eb4848dc1ef1a939b90c4ee1) )
+ ROM_LOAD16_BYTE( "265k2s58.c5", 0x2000000, 0x800000, CRC(92701baf) SHA1(b592760d604aabf6a043b277b0f21893bac64d9f) )
+ ROM_LOAD16_BYTE( "265k2s58.c6", 0x2000001, 0x800000, CRC(a54a31c4) SHA1(c4711813066def032674d8f779772971b5fc88b7) )
+ ROM_LOAD16_BYTE( "265k2s58.c7", 0x3000000, 0x800000, CRC(e14b86d9) SHA1(decbbcde2d12179a648c51f5d94c18cb3c3a6fdd) ) // bad dump
+ ROM_LOAD16_BYTE( "265k2s58.c8", 0x3000001, 0x800000, CRC(1d0f6bd8) SHA1(ba4d0c269120acdbf0e13cdcb0d9fa99c3483fc6) ) // bad dump
+ ROM_LOAD16_BYTE( "265k2s58.c9", 0x4000000, 0x800000, CRC(4c5f9a30) SHA1(ce2f8338b37c9bca73ab933d374bdd45784d680b) )
+ ROM_LOAD16_BYTE( "265k2s58.c10", 0x4000001, 0x800000, CRC(3ee65411) SHA1(55c2b57e9ee3760ee871934c7a118d001b95111f) )
+ ROM_LOAD16_BYTE( "265k2s58.c11", 0x5000000, 0x800000, CRC(e4aad9a3) SHA1(749c68eebee7dc073e3dcbf453db7a2f0a78b1a6) )
+ ROM_LOAD16_BYTE( "265k2s58.c12", 0x5000001, 0x800000, CRC(55761088) SHA1(295ab138bedd18fc341c7747998bb55e69cba8c7) )
+ ROM_LOAD16_BYTE( "265k2s58.c13", 0x6000000, 0x800000, CRC(d5c7149a) SHA1(68eb718b1dc3f754191099ebeaf43f1c141be1e7) )
+ ROM_LOAD16_BYTE( "265k2s58.c14", 0x6000001, 0x800000, CRC(c6a64bf3) SHA1(5fc0de29a13c38d44f0e6cda94fc31e3a598ecf5) )
+ ROM_LOAD16_BYTE( "265k2s58.c15", 0x7000000, 0x800000, CRC(867ac5b3) SHA1(e508492f9056f045b378bb2136c0df9fc4e710b8) )
+ ROM_LOAD16_BYTE( "265k2s83.c16", 0x7000001, 0x800000, CRC(8d7d8b38) SHA1(3f0bd5cbcee0173df81396c97f01315caf1378b2) ) // not used
+ROM_END
+
/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS */
// The King of Fighters '2002
HACK( 2005, kof2002s01, kof2002, neogeo_noslot, neogeo, neogeo_state, kof2002, ROT0, "KyoX", "Kof2002 (Translation Portuguese 2005-09-25)" , MACHINE_SUPPORTS_SAVE )
@@ -11863,4 +11897,5 @@ HACK( 2018, kof2k2s79, kof2002, neogeo_noslot, neogeo, neogeo_state,
HACK( 2018, kof2k2s80, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Unknown", "Kof2002 (Windbreaker 2019-02-13)", MACHINE_SUPPORTS_SAVE )
HACK( 2019, kof2k2s81, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Unknown", "Kof2002 (Tianguo Protoss revived 2019-04-15)", MACHINE_SUPPORTS_SAVE )
HACK( 2019, kof2k2s82, kof2002, gsc, neogeo, neogeo_state, kof2k2pl17, ROT0, "GSC2007", "Kof2002 Plus (2019-01-06 Hack)" , MACHINE_SUPPORTS_SAVE )
+HACK( 2019, kof2k2s83, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Unknown", "Kof2002 (All Mix Version 2018-04-22)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/kof96.cpp b/docs/release/src/hbmame/drivers/kof96.cpp
index cbc59a8e01e..4318d60e1f0 100644
--- a/docs/release/src/hbmame/drivers/kof96.cpp
+++ b/docs/release/src/hbmame/drivers/kof96.cpp
@@ -2657,8 +2657,8 @@ ROM_START( kof96s46 )
ROM_LOAD16_BYTE( "214h44.c2", 0x0000001, 0x800000, CRC(6ff22256) SHA1(cc92838f83d01ff1bef5d354231c223043705170) )
ROM_LOAD16_BYTE( "214h44.c3", 0x1000000, 0x800000, CRC(48d81318) SHA1(2c2f4149c613da45d8b2a8545ccef4ed3cfc0d74) )
ROM_LOAD16_BYTE( "214h45.c4", 0x1000001, 0x800000, CRC(d69836e6) SHA1(30cdda1a72dfe536bced936c54145217fc6ae17f) )
- ROM_LOAD16_BYTE( "214h45.c5", 0x2000000, 0x800000, CRC(ed71e6bb) SHA1(6e8021912029b6d1a68f3f942648b95d3724bcd4) )
- ROM_LOAD16_BYTE( "214h45.c6", 0x2000001, 0x800000, CRC(059fa364) SHA1(0e701f66fbf14089943c03c2a2e0401ebc10a0f2) )
+ ROM_LOAD16_BYTE( "214h46.c5", 0x2000000, 0x800000, CRC(ed71e6bb) SHA1(6e8021912029b6d1a68f3f942648b95d3724bcd4) )
+ ROM_LOAD16_BYTE( "214h46.c6", 0x2000001, 0x800000, CRC(059fa364) SHA1(0e701f66fbf14089943c03c2a2e0401ebc10a0f2) )
ROM_END
ROM_START( kof96cns01 )
diff --git a/docs/release/src/hbmame/drivers/kof97.cpp b/docs/release/src/hbmame/drivers/kof97.cpp
index 2de1c4284a7..0e9aca78fc4 100644
--- a/docs/release/src/hbmame/drivers/kof97.cpp
+++ b/docs/release/src/hbmame/drivers/kof97.cpp
@@ -1575,7 +1575,26 @@ ROM_START( kof97t )
ROM_REGION( 0x500000, "maincpu", 0 )
ROM_LOAD16_WORD_SWAP( "232t.p1", 0x000000, 0x100000, CRC(45834e9b) SHA1(e73ef2ca56d08d43ace32f20c964472cf61c8316) )
ROM_LOAD16_WORD_SWAP( "232t.p2", 0x100000, 0x400000, CRC(d9e51750) SHA1(9dd00aa69361d6b9c4ed905d656c62b82c8f4f9a) )
- ROM_FILL(0x70bd6,1,0x60)
+ ROM_FILL(0x70bda,1,0x0c)
+ ROM_FILL(0x70bdb,1,0x2d)
+ ROM_FILL(0x70bdc,1,0x00)
+ ROM_FILL(0x70bdd,1,0x05)
+ ROM_FILL(0x70bde,1,0x28)
+ ROM_FILL(0x70bdf,1,0x46)
+ ROM_FILL(0x70be0,1,0x65)
+ ROM_FILL(0x70be1,1,0x18)
+ ROM_FILL(0x70be2,1,0x39)
+ ROM_FILL(0x70be3,1,0x7c)
+ ROM_FILL(0x70be4,1,0x00)
+ ROM_FILL(0x70be5,1,0xb4)
+ ROM_FILL(0x70be6,1,0x00)
+ ROM_FILL(0x70be7,1,0xd2)
+ ROM_FILL(0x70be8,1,0x28)
+ ROM_FILL(0x70be9,1,0xbc)
+ ROM_FILL(0x70bea,1,0x00)
+ ROM_FILL(0x70beb,1,0x07)
+ ROM_FILL(0x70bec,1,0x0b)
+ ROM_FILL(0x70bed,1,0xee)
NEO_SFIX_128K( "232.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
@@ -5760,6 +5779,29 @@ ROM_START( kof97s145 )
ROM_LOAD16_BYTE( "232h145.c6", 0x2000001, 0x800000, CRC(ba28c1b4) SHA1(a7b95079ec221836e11391a5aa95f61be7d86342) )
ROM_END
+ROM_START( kof97s146 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232h145.p1", 0x000000, 0x100000, CRC(a7e3ba54) SHA1(b58846579e8291448ae861fdee7ee13d91209e80) )
+ ROM_LOAD16_WORD_SWAP( "232h146.p2", 0x100000, 0x400000, CRC(d10d633d) SHA1(f3e5d2d3c8da6e815ed7054d7d1bd428dd39bf22) )
+
+ NEO_SFIX_128K( "232hh13.s1", CRC(e338d57f) SHA1(4a914bcf0ffd011d4062e0bda9b47cb725324ff0) )
+
+ NEO_BIOS_AUDIO_128K( "232.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232hh13.c1", 0x0000000, 0x800000, CRC(93415994) SHA1(b0473816e3ff82d68e66be3722ac39af19e05d7d) )
+ ROM_LOAD16_BYTE( "232hh13.c2", 0x0000001, 0x800000, CRC(65b3b5b0) SHA1(076d640b71103c6fe1cf3ffd001eaa78e3da178d) )
+ ROM_LOAD16_BYTE( "232.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232h145.c5", 0x2000000, 0x800000, CRC(391c14d3) SHA1(3da90ab8c542bc4977267221e7ea43e155a87b80) )
+ ROM_LOAD16_BYTE( "232h145.c6", 0x2000001, 0x800000, CRC(ba28c1b4) SHA1(a7b95079ec221836e11391a5aa95f61be7d86342) )
+ROM_END
+
ROM_START( kof97hx01 )
ROM_REGION( 0x500000, "maincpu", 0 )
ROM_LOAD16_WORD_SWAP( "232.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) )
@@ -13059,6 +13101,7 @@ HACK( 1997, kof97s142, kof97, neogeo_noslot, neogeo, neogeo_state,
HACK( 1997, kof97s143, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Unknown", "Kof'97 (3 Question Version 2018-08-07)", MACHINE_SUPPORTS_SAVE )
HACK( 1997, kof97s144, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Unknown", "Kof'97 (SvS Crystal Version 2013-12-08)", MACHINE_SUPPORTS_SAVE )
HACK( 1997, kof97s145, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Unknown", "Kof'97 (Heavenly Kingdoms 2019-04-15)", MACHINE_SUPPORTS_SAVE )
+HACK( 1997, kof97s146, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Unknown", "Kof'97 (Heavenly Divine 2019-03-25)", MACHINE_SUPPORTS_SAVE )
HACK( 2005, kof97hx01, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kof1996", "Kof'97 (Attack Finished 2005-08-27)", MACHINE_SUPPORTS_SAVE )
HACK( 1997, kof97hx02, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ace1", "Kof'97 (Translation Korean)", MACHINE_SUPPORTS_SAVE )
HACK( 1997, kof97hx03, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "simaguang", "Kof'97 (#1 Athena Modified)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/kof98.cpp b/docs/release/src/hbmame/drivers/kof98.cpp
index cab6fbd8ca6..1f9e2ea5264 100644
--- a/docs/release/src/hbmame/drivers/kof98.cpp
+++ b/docs/release/src/hbmame/drivers/kof98.cpp
@@ -8196,6 +8196,84 @@ ROM_START( kof98hh119 )
ROM_LOAD16_BYTE( "242hx111.c8", 0x3000001, 0x800000, CRC(89c797df) SHA1(afad1e16a7b7398a98d8f3e0b931a1ebd0548e56) )
ROM_END
+ROM_START( kof98hh120 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hx120.p1", 0x000000, 0x100000, CRC(d2077b89) SHA1(6ca89f31596621d6464960254668a809802643fa) )
+ ROM_LOAD16_WORD_SWAP( "242hx110.p2", 0x100000, 0x400000, CRC(d34a4d38) SHA1(7af1d73a6b82f7be847719b013f77a5692bd0d49) )
+
+ 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", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242.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", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98hh121 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hx121.p1", 0x000000, 0x100000, CRC(04d17f87) SHA1(a68300fd8b77bfe671a8f4dd5ee52004903d7037) )
+ ROM_LOAD16_WORD_SWAP( "242hx110.p2", 0x100000, 0x400000, CRC(d34a4d38) SHA1(7af1d73a6b82f7be847719b013f77a5692bd0d49) )
+
+ 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", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242.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", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98hh122 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hx123.p1", 0x000000, 0x100000, CRC(4614eb7e) SHA1(408a3e480f0cb779dcda771d7a833407f736dea8) )
+ ROM_LOAD16_WORD_SWAP( "242hx123.p2", 0x100000, 0x400000, CRC(7290c5d9) SHA1(3ae0f0aab0e4f7545c8a053015891a6c11ad2fcf) )
+
+ NEO_SFIX_128K( "242hx123.s1", CRC(58fcd607) SHA1(23b2fc97220ab6c163c424a89fd7a880a0c1c096) )
+
+ NEO_BIOS_AUDIO_256K( "242hx123.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242hx123.v1", 0x000000, 0x400000, CRC(b5650f76) SHA1(8f88108deb8083a54cb489510f4c3ff511928cdd) )
+ ROM_LOAD( "242hx123.v2", 0x400000, 0x400000, CRC(b43b83ee) SHA1(4e912d94c02ac9d6d62c36d5d7b4ae2eb7398820) )
+ ROM_LOAD( "242hx123.v3", 0x800000, 0x400000, CRC(59c53922) SHA1(5b572a95a965aa8a25499124692bc71c106a46fb) )
+ ROM_LOAD( "242hx123.v4", 0xc00000, 0x400000, CRC(46ca6f5e) SHA1(412c1a0b6a4a3ff21a1d3a13e814adfb2981afbd) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242hx123.c1", 0x0000000, 0x800000, CRC(a02e0ddc) SHA1(fb4927e59e57410f0772cffb6d264251b5320d80) )
+ ROM_LOAD16_BYTE( "242hx123.c2", 0x0000001, 0x800000, CRC(3ccee83c) SHA1(5ce76b52d978eb962d02cade595b6ffcc5b66b6b) )
+ ROM_LOAD16_BYTE( "242hx123.c3", 0x1000000, 0x800000, CRC(4091bca0) SHA1(a4346ece9b1ad9a32599ad618e482cf13acba04d) )
+ ROM_LOAD16_BYTE( "242hx123.c4", 0x1000001, 0x800000, CRC(56918bab) SHA1(73c0e1614c164aea03c860db35f6027bb4ff4ce1) )
+ ROM_LOAD16_BYTE( "242hx123.c5", 0x2000000, 0x800000, CRC(76252bdc) SHA1(2b41cfd7c99d78818147e13eecbae9183e219556) )
+ ROM_LOAD16_BYTE( "242hx123.c6", 0x2000001, 0x800000, CRC(13d5b9b7) SHA1(5a1e9ff19e92f96bfdb0883d4521332c8fccfcf9) )
+ ROM_LOAD16_BYTE( "242hx123.c7", 0x3000000, 0x800000, CRC(1b3a6aa9) SHA1(5d50eaf58268788f77d42a047795773a4b2d9a9e) )
+ ROM_LOAD16_BYTE( "242hx123.c8", 0x3000001, 0x800000, CRC(ef3390ca) SHA1(4be429719db9612dc31b00320525868b6d3eeed6) )
+ROM_END
+
ROM_START( kof98xz01 )
ROM_REGION( 0x600000, "maincpu", 0 )
ROM_LOAD16_WORD_SWAP( "242.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) )
@@ -8738,6 +8816,9 @@ HACK( 2017, kof98hh116, kof98, neogeo_noslot, neogeo, neogeo_state,
HACK( 2018, kof98hh117, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Unknown", "Kof'98 (ECK Dragon Edition Energy enhancement 2018-09-09)", MACHINE_SUPPORTS_SAVE )
HACK( 2018, kof98hh118, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Unknown", "Kof'98 (ECK Dragon Edition 2019-02-17)", MACHINE_SUPPORTS_SAVE )
HACK( 2018, kof98hh119, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Unknown", "Kof'98 (ECK Dragon Edition 2019-02-27)", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, kof98hh120, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 (Combo 2019-07-09)(Original)", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, kof98hh121, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 (Combo 2019-07-09)(Simplify)", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, kof98hh122, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 (ECK 2019-07-25)", MACHINE_SUPPORTS_SAVE )
HACK( 1998, kof98xz01, kof98, neogeo_noslot, neogeo, neogeo_state, kof98, ROT0, "zuojie", "Kof'98 (Posture Is Transferred)", MACHINE_SUPPORTS_SAVE )
HACK( 1998, kof98xz02, kof98, neogeo_noslot, neogeo, neogeo_state, kof98, ROT0, "zuojie", "Kof'98 (Posture Reversal)", MACHINE_SUPPORTS_SAVE )
HACK( 1998, kof98xz03, kof98, neogeo_noslot, neogeo, neogeo_state, kof98, ROT0, "Ydmis", "Kof'98 (Enable hidden characters)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/m92.cpp b/docs/release/src/hbmame/drivers/m92.cpp
index c5543dfcc56..58977193623 100644
--- a/docs/release/src/hbmame/drivers/m92.cpp
+++ b/docs/release/src/hbmame/drivers/m92.cpp
@@ -447,6 +447,36 @@ ROM_START( nbbatmanus05 )
ROM_LOAD( "lh534k0k.8", 0x000000, 0x080000, CRC(735e6380) SHA1(bf019815e579ef2393c00869f101a01f746e04d6) )
ROM_END
+ /***************
+ Undercover Cops
+******************/
+
+ROM_START( uccopsjs01 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "uc_h0_a.ic28", 0x000001, 0x040000, CRC(9e17cada) SHA1(086bb9c1ab851cab3734c2f9188d8ff3c5f98913) )
+ ROM_LOAD16_BYTE( "uc_l0_a.ic39", 0x000000, 0x040000, CRC(4a4e3208) SHA1(d61c74d46584e2c15e70f7a17b598e51981da9e8) )
+ ROM_LOAD16_BYTE( "uc_h1_a_ps01.ic27", 0x080001, 0x020000, CRC(c298aba7) SHA1(1891c5449a2b5bc6e3fad8313eb4aa95e10839c2) )
+ ROM_LOAD16_BYTE( "uc_l1_a_ps01.ic38", 0x080000, 0x020000, CRC(5ade2afb) SHA1(34a4829e18052dcb114c2d6ec10c0c9588192534) )
+
+ ROM_REGION( 0x20000, "soundcpu", 0 )
+ ROM_LOAD16_BYTE( "uc_sh0.ic30", 0x00001, 0x10000, CRC(f0ca1b03) SHA1(07154a2c747091f8be23587c109d91ed1672da6e) )
+ ROM_LOAD16_BYTE( "uc_sl0.ic31", 0x00000, 0x10000, CRC(d1661723) SHA1(bdc00196aa2074e7b21e5949f73e9f2b93d76fd9) )
+
+ ROM_REGION( 0x200000, "gfx1", 0 ) /* Tiles */
+ ROM_LOAD( "uc_c0.ic26", 0x000000, 0x080000, CRC(6a419a36) SHA1(1907d15fcc4a8bf875d19768667ee4de4702cc2a) )
+ ROM_LOAD( "uc_c1.ic25", 0x080000, 0x080000, CRC(d703ecc7) SHA1(9716a8fde668e63cf3060450eb32ea43edf143d8) )
+ ROM_LOAD( "uc_c2.ic24", 0x100000, 0x080000, CRC(96397ac6) SHA1(6dfe507bd9f41b5d46d85ef5f46a368745593b52) )
+ ROM_LOAD( "uc_c3.ic23", 0x180000, 0x080000, CRC(5d07d10d) SHA1(ee1a928b37043c476346f189f75d2bfcc44bffe6) )
+
+ ROM_REGION( 0x400000, "gfx2", 0 ) /* Sprites */
+ ROM_LOAD( "uc_030.ic37", 0x000000, 0x100000, CRC(97f7775e) SHA1(5cd147fd940b1ab6eba8e6c6f803bdcc5da5a563) )
+ ROM_LOAD( "uc_020.ic36", 0x100000, 0x100000, CRC(5e0b1d65) SHA1(9e45753d10b2d7b580cd11cef74181209a424189) )
+ ROM_LOAD( "uc_010.ic35", 0x200000, 0x100000, CRC(bdc224b3) SHA1(09477ec39890d954fac6ff653b9f46c9adea56b6) )
+ ROM_LOAD( "uc_000.ic34", 0x300000, 0x100000, CRC(7526daec) SHA1(79431d711deb6ed09dc52be753b7b0f2c5588dc3) )
+
+ ROM_REGION( 0x80000, "irem", 0 )
+ ROM_LOAD( "uc_da.bin", 0x000000, 0x080000, CRC(0b2855e9) SHA1(70f9decd78eab679a2ccad69e01cb303b61e0d38) )
+ROM_END
/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS */
// Guardians
@@ -467,4 +497,5 @@ GAME( 2016, nbbatmanus02,nbbatman, nbbatman, nbbatman, m92_state, init_
GAME( 2019, nbbatmanus03,nbbatman, nbbatman, nbbatman, m92_state, init_bank, ROT0, "Unknown", "Ninja Baseball Bat Man (Musou version 2019-02-23)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL)
GAME( 2016, nbbatmanus04,nbbatman, nbbatman, nbbatman, m92_state, init_bank, ROT0, "Unknown", "Ninja Baseball Bat Man (Characters Changeable 2016-12-03)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL)
GAME( 2019, nbbatmanus05,nbbatman, nbbatman, nbbatman, m92_state, init_bank, ROT0, "Unknown", "Ninja Baseball Bat Man (Musou Edition 2019-03-08)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL)
-
+// Undercover Cops
+GAME( 2019, uccopsjs01, uccops, uccops, uccops, m92_state, empty_init, ROT0, "Unknown", "Undercover Cops (Edition Enhanced 2019-07-22)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
diff --git a/docs/release/src/hbmame/drivers/mhavoc.cpp b/docs/release/src/hbmame/drivers/mhavoc.cpp
index b227001c708..d74013afc63 100644
--- a/docs/release/src/hbmame/drivers/mhavoc.cpp
+++ b/docs/release/src/hbmame/drivers/mhavoc.cpp
@@ -2,7 +2,13 @@
// copyright-holders:Robbbert
#include "../mame/drivers/mhavoc.cpp"
-
+//**********************************************************************
+//* Drivers included
+//*
+//* Major Havoc - The Promised End - CAX 2018 BETA v0.21 - mhavocpex
+//* Major Havoc - The Promised End - CAX 2019 BETA v0.50 - mhavocpex2
+//*
+//**********************************************************************
void mhavoc_state::gammape_map(address_map &map)
{
@@ -27,25 +33,25 @@ void mhavoc_state::alphape_map(address_map &map)
map(0x0800, 0x09ff).ram();
map(0x0a00, 0x0fff).bankrw("bank1").share("zram1");
map(0x1000, 0x1000).r(FUNC(mhavoc_state::mhavoc_gamma_r)); /* Gamma Read Port */
- map(0x1200, 0x1200).portr("IN0").nopw(); /* Alpha Input Port 0 */
- map(0x1400, 0x141f).ram().share("avg:colorram"); /* ColorRAM */
- map(0x1600, 0x1600).w(FUNC(mhavoc_state::mhavoc_out_0_w)); /* Control Signals */
+ map(0x1200, 0x1200).portr("IN0").nopw(); /* Alpha Input Port 0 */
+ map(0x1400, 0x141f).ram().share("avg:colorram"); /* ColorRAM */
+ map(0x1600, 0x1600).w(FUNC(mhavoc_state::mhavoc_out_0_w)); /* Control Signals */
map(0x1640, 0x1640).w("avg", FUNC(avg_mhavoc_device::go_w)); /* Vector Generator GO */
map(0x1680, 0x1680).w("watchdog", FUNC(watchdog_timer_device::reset_w)); /* Watchdog Clear */
map(0x16c0, 0x16c0).w("avg", FUNC(avg_mhavoc_device::reset_w)); /* Vector Generator Reset */
map(0x1700, 0x1700).w(FUNC(mhavoc_state::mhavoc_alpha_irq_ack_w)); /* IRQ ack */
//map(0x1740, 0x1740).w(FUNC(mhavoc_state::mhavocpe_rom_banksel_w)); /* Program ROM Page Select */
map(0x1740, 0x1740).lw8("bnk", [this] (u8 data) { membank("bank2")->set_entry((data & 1) | ((data & 2)<<1) | ((data & 4)>>1)); });
- map(0x1780, 0x1780).w(FUNC(mhavoc_state::mhavoc_ram_banksel_w)); /* Program RAM Page Select */
+ map(0x1780, 0x1780).w(FUNC(mhavoc_state::mhavoc_ram_banksel_w)); /* Program RAM Page Select */
map(0x17c0, 0x17c0).w(FUNC(mhavoc_state::mhavoc_gamma_w)); /* Gamma Communication Write Port */
- map(0x1800, 0x1fff).ram(); /* Shared Beta Ram */
- map(0x2000, 0x3fff).bankr("bank2"); /* Paged Program ROM (32K) */
+ map(0x1800, 0x1fff).ram(); /* Shared Beta Ram */
+ map(0x2000, 0x3fff).bankr("bank2"); /* Paged Program ROM (32K) */
map(0x4000, 0x4fff).ram().share("avg:vectorram").region("alpha", 0x4000); /* Vector Generator RAM */
- map(0x5000, 0x5fff).rom(); /* Vector ROM */
- map(0x6000, 0x7fff).bankr("bank3"); /* Paged Vector ROM */
- map(0x8000, 0xffff).rom(); /* Program ROM (32K) */
+ map(0x5000, 0x5fff).rom(); /* Vector ROM */
+ map(0x6000, 0x7fff).bankr("bank3"); /* Paged Vector ROM */
+ map(0x8000, 0xffff).rom(); /* Program ROM (32K) */
}
-// membank("bank3")->set_entry(m_map);
+// membank("bank3")->set_entry(m_map);
void mhavoc_state::mhavocpe(machine_config &config)
{
@@ -59,26 +65,54 @@ void mhavoc_state::mhavocpe(machine_config &config)
ROM_START( mhavocpex )
/* Alpha Processor ROMs */
- ROM_REGION( 0x20000, "alpha", 0 ) /* 152KB for ROMs */
+ ROM_REGION( 0x20000, "alpha", 0 )
/* Vector Generator ROM */
ROM_LOAD( "mhpe.6kl", 0x05000, 0x2000, CRC(4c05b1a8) SHA1(89b524182fcfd966d6a7e3188235c957c451b8a9) )
/* Program ROM */
ROM_LOAD( "mhpe.1mn", 0x08000, 0x4000, CRC(3b691eff) SHA1(e8227d1458e3ed4d0e8444ec23f2c2d45a0d93b8) )
ROM_LOAD( "mhpe.1l", 0x0c000, 0x4000, CRC(fb53dae6) SHA1(08e9bd60e801778d3521d64817a10ba1ed74f4ff) )
-
+
+ /* Paged Program ROM */
+ ROM_LOAD( "mhpe.1q", 0x10000, 0x8000, CRC(660e3d57) SHA1(6eddf1335c536406080eab73f5501a202fb0583d) )
+ ROM_LOAD( "mhpe.1np", 0x18000, 0x8000, CRC(c1a70bad) SHA1(0b72b6817e2f00d2c001ac61ebd2cd42ff7785c9) )
+
+ /* Paged Vector Generator ROM */
+ ROM_REGION( 0x8000, "avg", 0 )
+ ROM_LOAD( "mhpe.6h", 0x0000, 0x4000, CRC(79fc58c0) SHA1(7b40dfb89bc4078e2bd6f89a570f2be9cca15df9) )
+ ROM_LOAD( "mhpe.6jk", 0x4000, 0x4000, CRC(dc78b802) SHA1(6b951982232de08d32d3a2d01814cc28f89d2120) )
+
+ /* Gamma Processor ROM */
+ ROM_REGION( 0x10000, "gamma", 0 )
+ ROM_LOAD( "mhpe.9s", 0x8000, 0x8000, CRC(d42ee58e) SHA1(667aec3c3e93df3f8dedddb0db1188291e37630b) )
+
+ /* AVG PROM */
+ ROM_REGION( 0x100, "avg:prom", 0 )
+ ROM_LOAD( "036408-01.b1", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+ROM_END
+
+ROM_START( mhavocpex2 )
+ /* Alpha Processor ROMs */
+ ROM_REGION( 0x20000, "alpha", 0 )
+ /* Vector Generator ROM */
+ ROM_LOAD( "mhpe2.6kl", 0x05000, 0x2000, CRC(3804822b) SHA1(78ca5ad3ac9ce9f6ce6ca497f70c7233adc52502) )
+
+ /* Program ROM */
+ ROM_LOAD( "mhpe2.1mn", 0x08000, 0x4000, CRC(2b505cae) SHA1(1ca14c6c810a3dec964eae63e9941e411d3ec546) )
+ ROM_LOAD( "mhpe2.1l", 0x0c000, 0x4000, CRC(8c078dcf) SHA1(b4681eb4930938a93e74c313ee1031ad1a71e198) )
+
/* Paged Program ROM */
- ROM_LOAD( "mhpe.1q", 0x10000, 0x8000, CRC(660e3d57) SHA1(6eddf1335c536406080eab73f5501a202fb0583d) ) /* page 0+1+4+5 */
- ROM_LOAD( "mhpe.1np", 0x18000, 0x8000, CRC(c1a70bad) SHA1(0b72b6817e2f00d2c001ac61ebd2cd42ff7785c9) ) /* page 2+3+6+7 */
+ ROM_LOAD( "mhpe2.1q", 0x10000, 0x8000, CRC(7602fccd) SHA1(9073c5e2a70f23c7bab2927936ee5a22e2adb57a) )
+ ROM_LOAD( "mhpe2.1np", 0x18000, 0x8000, CRC(bc6775e1) SHA1(a59a93d4414a0318e37c1e50ef139b6611e4233f) )
/* Paged Vector Generator ROM */
ROM_REGION( 0x8000, "avg", 0 )
- ROM_LOAD( "mhpe.6h", 0x0000, 0x4000, CRC(79fc58c0) SHA1(7b40dfb89bc4078e2bd6f89a570f2be9cca15df9) ) /* page 0+1 */
- ROM_LOAD( "mhpe.6jk", 0x4000, 0x4000, CRC(dc78b802) SHA1(6b951982232de08d32d3a2d01814cc28f89d2120) ) /* page 2+3 */
+ ROM_LOAD( "mhpe2.6h", 0x0000, 0x4000, CRC(ec19097f) SHA1(261c957e5311ac5fd700949e04e9d4a6ef12c043) )
+ ROM_LOAD( "mhpe2.6jk", 0x4000, 0x4000, CRC(2ac3f07b) SHA1(27d06ed9edf8cd227c7db7c28a7f7357da1260c6) )
/* Gamma Processor ROM */
ROM_REGION( 0x10000, "gamma", 0 )
- ROM_LOAD( "mhpe.9s", 0x08000, 0x8000, CRC(d42ee58e) SHA1(667aec3c3e93df3f8dedddb0db1188291e37630b) ) /* 32K Here */
+ ROM_LOAD( "mhpe2.9s", 0x8000, 0x8000, CRC(57ca8c09) SHA1(84ae19a9ff3b61c75f1fd147540a1e5fb42e6915) )
/* AVG PROM */
ROM_REGION( 0x100, "avg:prom", 0 )
@@ -86,5 +120,6 @@ ROM_START( mhavocpex )
ROM_END
-GAME( 2018, mhavocpex, mhavoc, mhavocpe, mhavocrv, mhavoc_state, init_mhavocrv, ROT0, "HaxRus", "Major Havoc - The Promised End (v0.21)", MACHINE_SUPPORTS_SAVE )
+GAME( 2018, mhavocpex, mhavoc, mhavocpe, mhavocrv, mhavoc_state, init_mhavocrv, ROT0, "HaxRus", "Major Havoc - The Promised End (v0.21)", MACHINE_SUPPORTS_SAVE )
+GAME( 2019, mhavocpex2, mhavoc, mhavocpe, mhavocrv, mhavoc_state, init_mhavocrv, ROT0, "HaxRus", "Major Havoc - The Promised End (v0.50)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/midtunit.cpp b/docs/release/src/hbmame/drivers/midtunit.cpp
index 75454d49dcf..dcd361bb553 100644
--- a/docs/release/src/hbmame/drivers/midtunit.cpp
+++ b/docs/release/src/hbmame/drivers/midtunit.cpp
@@ -441,3 +441,42 @@ ROM_END
/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS */
// Mortal Kombat
GAME( 1992, mks01, mk, tunit_adpcm, mk, midtunit_state, init_mktunit, ROT0, "S.Arkames", "Mortal Kombat (Language Translation French Rev.2)", MACHINE_SUPPORTS_SAVE )
+
+
+ROM_START( nbajamtexxx )
+ ROM_REGION( 0x50000, "adpcm:cpu", 0 )
+ ROM_LOAD( "l1_nba_jam_tournament_u3_sound_rom.u3", 0x010000, 0x20000, CRC(d4551195) SHA1(e8908fbe4339fb8c93f7e74113dfd25dda1667ea) )
+ ROM_RELOAD( 0x030000, 0x20000 )
+
+ ROM_REGION( 0x100000, "adpcm:oki", 0 )
+ ROM_LOAD( "xxx_nba_jam_tournament.u12", 0x000000, 0x80000, CRC(dd0b81b1) SHA1(1ea938138e2267b30250de9a7f643ba624923204) )
+ ROM_LOAD( "xxx_nba_jam_tournament.u13", 0x080000, 0x80000, CRC(b42a0374) SHA1(6a565fc01b662d116db065172c057ee596b3a538) )
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "l4_nba_jam_tournament_game_rom_uj12.uj12", 0x00000, 0x80000, CRC(d7c21bc4) SHA1(e05f0299b955500df6a08b1c0b24b932a9cdfa6a) )
+ ROM_LOAD16_BYTE( "l4_nba_jam_tournament_game_rom_ug12.ug12", 0x00001, 0x80000, CRC(7ad49229) SHA1(e9ceedb0e620809d8a4d42087d806aa296a4cd59) )
+
+ ROM_REGION( 0xc00000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_ug14.ug14", 0x000000, 0x80000, CRC(04bb9f64) SHA1(9e1a8c37e14cb6fe67f4aa3caa9022f356f1ca64) )
+ ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_uj14.uj14", 0x000001, 0x80000, CRC(b34b7af3) SHA1(0abb74d2f414bc9da0380a81beb134f3a87c1a0a) )
+ ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_ug19.ug19", 0x000002, 0x80000, CRC(a8f22fbb) SHA1(514208a9d6d0c8c2d7847cc02d4387eac90be659) )
+ ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_uj19.uj19", 0x000003, 0x80000, CRC(8130a8a2) SHA1(f23f124024285d07d8cf822817b62e42c38b82db) )
+
+ ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_ug16.ug16", 0x200000, 0x80000, CRC(c7ce74d0) SHA1(93861cd909e0f28ed112096d6f9fc57d0d31c57c) )
+ ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_uj16.uj16", 0x200001, 0x80000, CRC(905ad88b) SHA1(24c336ccc0e2ac0ee96a34ad6fe4aa7464de0009) )
+ ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_ug20.ug20", 0x200002, 0x80000, CRC(8a48728c) SHA1(3684099b4934b027336c319c77d9e0710b8c22dc) )
+ ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_uj20.uj20", 0x200003, 0x80000, CRC(bf263d61) SHA1(b5b59e8df55f8030eff068c1d8b07dad8521bf5d) )
+
+ ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_ug17.ug17", 0x400000, 0x80000, CRC(9401be62) SHA1(597413a8a1eb66a7ad89af2f548fa3062e5e8efb) )
+ ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_uj17.uj17", 0x400001, 0x80000, CRC(8a852b9e) SHA1(604c7f4305887e9505320630027765ea76607c58) )
+ ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_ug22.ug22", 0x400002, 0x80000, CRC(3b05133b) SHA1(f6067abb92b8751afe7352a4f1b1a22c9528002b) )
+ ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_uj22.uj22", 0x400003, 0x80000, CRC(39791051) SHA1(7aa02500ddacd31fca04044a22a38f36452ca300) )
+
+ ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_ug18.ug18", 0x600000, 0x80000, CRC(6fd08f57) SHA1(5b7031dffc88374c5bfdf3021aa01ec4e28d0631) )
+ ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_uj18.uj18", 0x600001, 0x80000, CRC(4eb73c26) SHA1(693bf45f777da8e55b7bcd8699ea5bd711964941) )
+ ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_ug23.ug23", 0x600002, 0x80000, CRC(854f73bc) SHA1(242cc8ce28711f6f0787524a1070eb4b0956e6ae) )
+ ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_uj23.uj23", 0x600003, 0x80000, CRC(f8c30998) SHA1(33e2f982d74e9f3686b1f4a8172c49fb8b604cf5) )
+ROM_END
+
+GAME( 1994, nbajamtexxx,nbajamte, tunit_adpcm, nbajamte, midtunit_state, init_nbajamte, ROT0, "Midway", "NBA Jam TE (rev XXX)", MACHINE_SUPPORTS_SAVE )
+
diff --git a/docs/release/src/hbmame/drivers/mslug4.cpp b/docs/release/src/hbmame/drivers/mslug4.cpp
index a8e9d51e28d..2e19d8503bf 100644
--- a/docs/release/src/hbmame/drivers/mslug4.cpp
+++ b/docs/release/src/hbmame/drivers/mslug4.cpp
@@ -1260,6 +1260,30 @@ ROM_START( mslug4hh46 ) //mslug4c
ROM_LOAD16_BYTE( "263lw.c6", 0x2000001, 0x400000, CRC(b015aeee) SHA1(24e12e72b82eea9e52a4cefc774efb3bd7db822f) )
ROM_END
+ROM_START( mslug4hh47 ) //mslug4dd
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263nd.p1", 0x000000, 0x100000, CRC(4D7E6624) SHA1(125d5203e89cce23a851fa74cc8cbe003ef978f3) )
+ ROM_LOAD16_WORD_SWAP( "263.p2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_128K( "263.s1", CRC(a9446774) SHA1(c5a309fd8ee6d6750a15c82e710218a3755e38b2) )
+
+ NEO_BIOS_AUDIO_128K( "263nd.m1", CRC(ef5db532) SHA1(4aeba9e206b8f309610eb7e1891644f39aa61830) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263lw.v1", 0x000000, 0x400000, CRC(8cb5a9ef) SHA1(272ad312f8694acf9190ebf48d1c8a5fec73c130) )
+ ROM_LOAD( "263hh48.v2", 0x400000, 0x400000, CRC(94217b1e) SHA1(c468a192e2ec0952a20cfd9e391cf6c12346efb3) )
+ ROM_LOAD( "263hh48.v3", 0x800000, 0x400000, CRC(7616fcec) SHA1(83006094379d0373b967603dcaa1cec69c2f746f) )
+ ROM_LOAD( "263hh48.v4", 0xc00000, 0x400000, CRC(c5967f91) SHA1(874562109c3df9e1fdefbb3970092128aaa31a17) )
+
+ 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( mslug4erms01 )
ROM_REGION( 0x900000, "maincpu", 0 )
ROM_LOAD16_WORD_SWAP( "263erms01.p1", 0x000000, 0x100000, CRC(094c778d) SHA1(185d878547162f2c7774fdcb9d7e3f8cdad4ef8b) )
@@ -4812,6 +4836,7 @@ HACK( 2019, mslug4hh43, mslug4, neogeo_noslot, neogeo, neogeo_state, neo
HACK( 2019, mslug4hh44, mslug4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "XiaShuiDaoMeiRenYu", "Metal Slug 4 (Enemies Resetting Version 2019-04-15)", MACHINE_SUPPORTS_SAVE )
HACK( 2019, mslug4hh45, mslug4, neogeo_noslot, neogeo, neogeo_state, mslug4hb, ROT0, "Unknown", "Metal Slug 4 (Generation 1V2 2019-05-11)", MACHINE_SUPPORTS_SAVE )
HACK( 2019, mslug4hh46, mslug4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "XiaShuiDaoMeiRenYu", "Metal Slug 4 (Enemies Resetting Version 2019-04-25)", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug4hh47, mslug4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "GOTVG", "Metal Slug 4 (Fully Decrypted [?] Version)", MACHINE_SUPPORTS_SAVE )
HACK( 2019, mslug4erms01, mslug4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Team Remix(Gaston90,Unknown,Creamymami[EGCG])", "Metal Slug 4 (Enemies Resetting Multi-Function Version 2019-04-15)(Revised Version Remix 1.0 (2019-04-19))", MACHINE_SUPPORTS_SAVE )
HACK( 2019, mslug4erms02, mslug4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Team Remix(Gaston90,Unknown,Creamymami[EGCG])", "Metal Slug 4 (Enemies Resetting Multi-Function Version 2019-04-15)(Revised Version Remix 1.1 (2019-04-19))", MACHINE_SUPPORTS_SAVE )
HACK( 2019, mslug4erms03, mslug4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Team Remix(Gaston90,Unknown,Creamymami[EGCG])", "Metal Slug 4 (Enemies Resetting Multi-Function Version 2019-04-15)(Revised Version Remix 1.2 (2019-04-19))", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/mslug5.cpp b/docs/release/src/hbmame/drivers/mslug5.cpp
index 0ae6bd986ee..c3a516da03d 100644
--- a/docs/release/src/hbmame/drivers/mslug5.cpp
+++ b/docs/release/src/hbmame/drivers/mslug5.cpp
@@ -7894,7 +7894,7 @@ ROM_END
ROM_START( mslug5ervn01 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervn01.p1", 0x000000, 0x600000, CRC(1a84181e) SHA1(45332c8ab3e0895c110b239dfab966e01d8357c6) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc01.p1", 0x000000, 0x600000, CRC(1a84181e) SHA1(45332c8ab3e0895c110b239dfab966e01d8357c6) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -7920,7 +7920,7 @@ ROM_END
ROM_START( mslug5ervn02 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervn02.p1", 0x000000, 0x600000, CRC(92db5ff9) SHA1(56bc8684eb1b6ee30c08e92de4a9bf9cbaeca017) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc02.p1", 0x000000, 0x600000, CRC(92db5ff9) SHA1(56bc8684eb1b6ee30c08e92de4a9bf9cbaeca017) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -7946,7 +7946,7 @@ ROM_END
ROM_START( mslug5ervn03 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervn03.p1", 0x000000, 0x600000, CRC(eaee62a4) SHA1(225fcaab90c4840e9e4ac57cc57643fa20f03914) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc03.p1", 0x000000, 0x600000, CRC(eaee62a4) SHA1(225fcaab90c4840e9e4ac57cc57643fa20f03914) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -7972,7 +7972,7 @@ ROM_END
ROM_START( mslug5ervn04 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervn04.p1", 0x000000, 0x600000, CRC(9274e3b4) SHA1(735505b47c839425d1b5b15c58b27aec64b29dd7) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc04.p1", 0x000000, 0x600000, CRC(9274e3b4) SHA1(735505b47c839425d1b5b15c58b27aec64b29dd7) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -7998,7 +7998,7 @@ ROM_END
ROM_START( mslug5ervn05 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervn05.p1", 0x000000, 0x600000, CRC(1a2ba453) SHA1(c8c5c526aaf1376879a07666c1ec0b4267676ea1) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc05.p1", 0x000000, 0x600000, CRC(1a2ba453) SHA1(c8c5c526aaf1376879a07666c1ec0b4267676ea1) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -8024,7 +8024,7 @@ ROM_END
ROM_START( mslug5ervn06 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervn06.p1", 0x000000, 0x600000, CRC(621e990e) SHA1(9580a4b23ab2436ebb7f13cdd46849b7c9f6fe64) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc06.p1", 0x000000, 0x600000, CRC(621e990e) SHA1(9580a4b23ab2436ebb7f13cdd46849b7c9f6fe64) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -8050,7 +8050,7 @@ ROM_END
ROM_START( mslug5ervn07 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervn07.p1", 0x000000, 0x600000, CRC(5cf448ed) SHA1(b20267ae92d7b48c84c546aac8f644b2e262f360) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc07.p1", 0x000000, 0x600000, CRC(5cf448ed) SHA1(b20267ae92d7b48c84c546aac8f644b2e262f360) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -8076,7 +8076,7 @@ ROM_END
ROM_START( mslug5ervn08 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervn08.p1", 0x000000, 0x600000, CRC(d4ab0f0a) SHA1(8ce0eb44ccf5733396eed3cb7117cbc97c9db5a4) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc08.p1", 0x000000, 0x600000, CRC(d4ab0f0a) SHA1(8ce0eb44ccf5733396eed3cb7117cbc97c9db5a4) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -8102,7 +8102,7 @@ ROM_END
ROM_START( mslug5ervn09 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervn09.p1", 0x000000, 0x600000, CRC(ac9e3257) SHA1(5ad3f7270758bdd0131198b394f0bbf90c606cf9) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc09.p1", 0x000000, 0x600000, CRC(ac9e3257) SHA1(5ad3f7270758bdd0131198b394f0bbf90c606cf9) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -8128,7 +8128,7 @@ ROM_END
ROM_START( mslug5ervn10 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervn10.p1", 0x000000, 0x600000, CRC(d404b347) SHA1(3345aaa9adaca0ffbc37318e126a51411b01c19a) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc10.p1", 0x000000, 0x600000, CRC(d404b347) SHA1(3345aaa9adaca0ffbc37318e126a51411b01c19a) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -8154,7 +8154,7 @@ ROM_END
ROM_START( mslug5ervn11 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervn11.p1", 0x000000, 0x600000, CRC(5c5bf4a0) SHA1(9be4fd03d683cac45399c595f54f7ff82de5af84) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc11.p1", 0x000000, 0x600000, CRC(5c5bf4a0) SHA1(9be4fd03d683cac45399c595f54f7ff82de5af84) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -8180,7 +8180,7 @@ ROM_END
ROM_START( mslug5ervn12 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervn12.p1", 0x000000, 0x600000, CRC(246ec9fd) SHA1(ddfb75ded2a271bbff37ea6df8a3a9117dd47080) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc12.p1", 0x000000, 0x600000, CRC(246ec9fd) SHA1(ddfb75ded2a271bbff37ea6df8a3a9117dd47080) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -8206,7 +8206,7 @@ ROM_END
ROM_START( mslug5ervn13 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervn13.p1", 0x000000, 0x600000, CRC(12a4ac86) SHA1(ab48e1953b29c74a9b17e1f7f1901d6a6cac07b9) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc13.p1", 0x000000, 0x600000, CRC(12a4ac86) SHA1(ab48e1953b29c74a9b17e1f7f1901d6a6cac07b9) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -8232,7 +8232,7 @@ ROM_END
ROM_START( mslug5ervn14 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervn14.p1", 0x000000, 0x600000, CRC(9afbeb61) SHA1(e43f069e3a837f10fcd7a87f00ec7eb4d8d1f071) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc14.p1", 0x000000, 0x600000, CRC(9afbeb61) SHA1(e43f069e3a837f10fcd7a87f00ec7eb4d8d1f071) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -8258,7 +8258,7 @@ ROM_END
ROM_START( mslug5ervn15 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervn15.p1", 0x000000, 0x600000, CRC(e2ced63c) SHA1(0cddbd2ff179849d8fd4dd421364aaa9c3dde17f) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc15.p1", 0x000000, 0x600000, CRC(e2ced63c) SHA1(0cddbd2ff179849d8fd4dd421364aaa9c3dde17f) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -8284,7 +8284,7 @@ ROM_END
ROM_START( mslug5ervn16 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervn16.p1", 0x000000, 0x600000, CRC(0ed52b62) SHA1(5a329f423a8efd1252c82ffe4619a2cf90c3fbb4) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc16.p1", 0x000000, 0x600000, CRC(0ed52b62) SHA1(5a329f423a8efd1252c82ffe4619a2cf90c3fbb4) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -8310,7 +8310,7 @@ ROM_END
ROM_START( mslug5ervn17 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervn17.p1", 0x000000, 0x600000, CRC(868a6c85) SHA1(f015513f7f999924bc2f1aace7993bdab607da2a) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc17.p1", 0x000000, 0x600000, CRC(868a6c85) SHA1(f015513f7f999924bc2f1aace7993bdab607da2a) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -8336,7 +8336,7 @@ ROM_END
ROM_START( mslug5ervn18 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervn18.p1", 0x000000, 0x600000, CRC(febf51d8) SHA1(a7947c3eba394bec9eedc65f25c003e00af1fd56) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc18.p1", 0x000000, 0x600000, CRC(febf51d8) SHA1(a7947c3eba394bec9eedc65f25c003e00af1fd56) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -8362,7 +8362,7 @@ ROM_END
ROM_START( mslug5ervn19 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervn19.p1", 0x000000, 0x600000, CRC(58e412a1) SHA1(f9b99d0a9d0b0b7e2d2130ff6621a542dfd51002) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc19.p1", 0x000000, 0x600000, CRC(58e412a1) SHA1(f9b99d0a9d0b0b7e2d2130ff6621a542dfd51002) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -8388,7 +8388,7 @@ ROM_END
ROM_START( mslug5ervn20 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervn20.p1", 0x000000, 0x600000, CRC(d0bb5546) SHA1(c0ac831c3563047fe42f9f95fa53478a02391d33) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc20.p1", 0x000000, 0x600000, CRC(d0bb5546) SHA1(c0ac831c3563047fe42f9f95fa53478a02391d33) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -8414,7 +8414,7 @@ ROM_END
ROM_START( mslug5ervn21 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervn21.p1", 0x000000, 0x600000, CRC(a88e681b) SHA1(847974c757bdf9af662128f5900572459295ca4a) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc21.p1", 0x000000, 0x600000, CRC(a88e681b) SHA1(847974c757bdf9af662128f5900572459295ca4a) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -8440,7 +8440,7 @@ ROM_END
ROM_START( mslug5ervn22 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervn22.p1", 0x000000, 0x600000, CRC(d014e90b) SHA1(0f8775cd3e90b041ca22bb536a0dbf11b1f0ecb4) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc22.p1", 0x000000, 0x600000, CRC(d014e90b) SHA1(0f8775cd3e90b041ca22bb536a0dbf11b1f0ecb4) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -8466,7 +8466,7 @@ ROM_END
ROM_START( mslug5ervn23 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervn23.p1", 0x000000, 0x600000, CRC(584baeec) SHA1(1b94286e2147eee0a6ad70ae8aa62784089bb9f0) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc23.p1", 0x000000, 0x600000, CRC(584baeec) SHA1(1b94286e2147eee0a6ad70ae8aa62784089bb9f0) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -8492,7 +8492,7 @@ ROM_END
ROM_START( mslug5ervn24 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervn24.p1", 0x000000, 0x600000, CRC(207e93b1) SHA1(6e1cfaf055745174357a93b1d21f5278df9f0aea) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc24.p1", 0x000000, 0x600000, CRC(207e93b1) SHA1(6e1cfaf055745174357a93b1d21f5278df9f0aea) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
diff --git a/docs/release/src/hbmame/drivers/neogeohb.cpp b/docs/release/src/hbmame/drivers/neogeohb.cpp
index c90153bf39c..f29e606136a 100644
--- a/docs/release/src/hbmame/drivers/neogeohb.cpp
+++ b/docs/release/src/hbmame/drivers/neogeohb.cpp
@@ -221,6 +221,7 @@ NUM YEAR COMPANY TITLE
487 2018 Vasily Familiya Double Dragon SpritePool Demo
488 2018 Vasily Familiya Shaman King demo
489 2019 Vasily Familiya Venus Wars demo
+490*n/r Hine62/SAOH Neo Geo Space Invaders
********************** 800 to 899 **********************************
@@ -1027,13 +1028,42 @@ ROM_START( cndi ) /* you must use unibios to select Japan Console */
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_LOAD( "425.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( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "425.v1", 0x000000, 0x091000, CRC(15d318a6) SHA1(10f99dbded4093bac104ce954e93dba7ce8c4ade) ) // bad sound
+
+ 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
+
+// 425 : Chip n Dale intro from Raregame
+ROM_START( cndia ) /* 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( "425a.m1", 0x0000, 0x2000, CRC(ae120a59) SHA1(11a49a82007810890ac01757af217ce76c78335b) )
+ ROM_RELOAD( 0x10000, 0x2000 )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "425a.v1", 0x000000, 0x092000, CRC(91d45537) SHA1(2e3fe9733a49a7d5597fea40f59274133c331795) ) // better sound
ROM_REGION( 0x2000000, "sprites", 0 )
ROM_LOAD16_BYTE( "425.c1", 0x0000000, 0x400000, CRC(55bd32fc) SHA1(9ca14628b50182257e812a64ae7779b677f49b3a) )
@@ -1064,7 +1094,7 @@ ROM_START( dwi ) /* you must use unibios to select Japan Console */
ROM_LOAD( "426.m1", 0x0000, 0x2000, CRC(2249e065) SHA1(3dc737888846acfbe693452b03ee2b5c09ff9408) )
ROM_RELOAD( 0x10000, 0x2000 )
- ROM_REGION( 0x09b000, "ymsnd", 0 )
+ ROM_REGION( 0x100000, "ymsnd", 0 )
ROM_LOAD( "426.v1", 0x000000, 0x09b000, CRC(13bb4ce4) SHA1(0762db7991a5958ae7d8fd5cad2a850f1803a372) )
ROM_REGION( 0x2000000, "sprites", 0 )
@@ -1083,7 +1113,7 @@ ROM_START( dwia ) /* 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( "426wi.s1", CRC(63b8b25e) SHA1(1dacfaebfa68d1b2518324c2bc000f310ed8fc3f) )
+ 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) )
@@ -1092,10 +1122,10 @@ ROM_START( dwia ) /* you must use unibios to select Japan Console */
ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) )
ROM_REGION( 0x20000, "audiocpu", 0 )
- ROM_LOAD( "426wi.m1", 0x0000, 0x2000, CRC(b9f8df96) SHA1(8472b7308df7b7d3f1fc8824b17d81f670e6d68e) )
+ ROM_LOAD( "426a.m1", 0x0000, 0x2000, CRC(b9f8df96) SHA1(8472b7308df7b7d3f1fc8824b17d81f670e6d68e) )
ROM_RELOAD( 0x10000, 0x2000 )
- ROM_REGION( 0x09b000, "ymsnd", 0 )
+ ROM_REGION( 0x100000, "ymsnd", 0 )
ROM_LOAD( "426.v1", 0x000000, 0x09b000, CRC(13bb4ce4) SHA1(0762db7991a5958ae7d8fd5cad2a850f1803a372) )
ROM_REGION( 0x2000000, "sprites", 0 )
@@ -1127,7 +1157,7 @@ ROM_START( gbi ) /* you must use unibios to select Japan Console */
ROM_LOAD( "427.m1", 0x0000, 0x2000, CRC(6624e642) SHA1(03a723c477905425ced965a63fb6d006abd045e9) )
ROM_RELOAD( 0x10000, 0x2000 )
- ROM_REGION( 0x094a00, "ymsnd", 0 )
+ ROM_REGION( 0x100000, "ymsnd", 0 )
ROM_LOAD( "427.v1", 0x000000, 0x094a00, CRC(44864761) SHA1(35334b93c65b3e27338290c2ba1f73aa902aa893) )
ROM_REGION( 0x1800000, "sprites", 0 )
@@ -1157,7 +1187,7 @@ ROM_START( rci ) /* you must use unibios to select Japan Console */
ROM_LOAD( "428.m1", 0x0000, 0x2000, CRC(c4d35e83) SHA1(0f2bb58e6e545090a11f7fbf471dcd46768a313b) )
ROM_RELOAD( 0x10000, 0x2000 )
- ROM_REGION( 0x096000, "ymsnd", 0 )
+ ROM_REGION( 0x100000, "ymsnd", 0 )
ROM_LOAD( "428.v1", 0x000000, 0x096000, CRC(ecb284a9) SHA1(1ff34e6f3091ddf0da7b8afb06b903ab39d0b629) )
ROM_REGION( 0x2000000, "sprites", 0 )
@@ -1190,8 +1220,8 @@ ROM_START( smi ) /* you must use unibios to select Japan Console */
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( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "429.v1", 0x000000, 0x096100, CRC(95c138da) SHA1(7bfcd525ecf01737ec85db88355323d676f1f03b) ) // bad sound
ROM_REGION( 0x1800000, "sprites", 0 )
ROM_LOAD16_BYTE( "429.c1", 0x0000000, 0x400000, CRC(8e5ccfdd) SHA1(a26a3cadf67f864ded64daca3af13a8db8a73b62) )
@@ -1220,7 +1250,7 @@ ROM_START( tmnti ) /* you must use unibios to select Japan Console */
ROM_LOAD( "430.m1", 0x0000, 0x2000, CRC(953542ef) SHA1(95e93833b938b8d374d29f925777cf296468ae9e) )
ROM_RELOAD( 0x10000, 0x2000 )
- ROM_REGION( 0x094900, "ymsnd", 0 )
+ ROM_REGION( 0x100000, "ymsnd", 0 )
ROM_LOAD( "430.v1", 0x000000, 0x094900, CRC(273640c3) SHA1(6d445e728fa9c4af00de4f454a73651de7a69ec9) )
ROM_REGION( 0x2000000, "sprites", 0 )
@@ -1250,7 +1280,7 @@ ROM_START( tmntia ) /* you must use unibios to select Japan Console */
ROM_LOAD( "430.m1", 0x0000, 0x2000, CRC(953542ef) SHA1(95e93833b938b8d374d29f925777cf296468ae9e) )
ROM_RELOAD( 0x10000, 0x2000 )
- ROM_REGION( 0x094900, "ymsnd", 0 )
+ ROM_REGION( 0x100000, "ymsnd", 0 )
ROM_LOAD( "430.v1", 0x000000, 0x094900, CRC(273640c3) SHA1(6d445e728fa9c4af00de4f454a73651de7a69ec9) )
ROM_REGION( 0x2000000, "sprites", 0 )
@@ -1282,8 +1312,8 @@ ROM_START( dti ) /* you must use unibios to select Japan Console */
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( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "431.v1", 0x000000, 0x090200, CRC(b40c3a5a) SHA1(fda5e4bf3af75aa70df32b21f132c41670212c52) ) // bad sound
ROM_REGION( 0x2000000, "sprites", 0 )
ROM_LOAD16_BYTE( "431.c1", 0x0000000, 0x400000, CRC(02adabba) SHA1(7b1eafebed09dbfc1b8d9612f0ed477e25ab152d) )
@@ -1297,7 +1327,7 @@ ROM_START( dti ) /* you must use unibios to select Japan Console */
ROM_END
// 431 : Duck Tales intro from Raregame
-ROM_START( dti2 ) /* you must use unibios to select Japan Console */
+ROM_START( dtia ) /* 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) )
@@ -1313,8 +1343,8 @@ ROM_START( dti2 ) /* you must use unibios to select Japan Console */
ROM_LOAD( "431.m1", 0x0000, 0x2000, CRC(7761d993) SHA1(b269e9878ca28faa1d36c7fa3dd8e9939714a5f4) )
ROM_RELOAD( 0x10000, 0x2000 )
- ROM_REGION( 0x090200, "ymsnd", 0 )
- ROM_LOAD( "432.v1", 0x000000, 0x090200, CRC(24b716ee) SHA1(ec153b7f4054644a8dbeacfc1c03a464a7c47c3b) )
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "431a.v1", 0x000000, 0x090200, CRC(24b716ee) SHA1(ec153b7f4054644a8dbeacfc1c03a464a7c47c3b) ) // good sound
ROM_REGION( 0x2000000, "sprites", 0 )
ROM_LOAD16_BYTE( "431.c1", 0x0000000, 0x400000, CRC(02adabba) SHA1(7b1eafebed09dbfc1b8d9612f0ed477e25ab152d) )
@@ -2246,7 +2276,7 @@ ROM_START( lhcdb )
NEO_BIOS_AUDIO_128K( "802cd.m1", CRC(d9f6c153) SHA1(c08f7ca288be1c34f4b33ed13abd805b5cd66d4e) )
- ROM_REGION( 0xbc3500, "ymsnd", 0 )
+ ROM_REGION( 0x1000000, "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) )
@@ -2265,7 +2295,7 @@ ROM_START( lhcdba ) // v3,p1 rom are different, but same bugs as above
NEO_BIOS_AUDIO_128K( "802cd.m1", CRC(d9f6c153) SHA1(c08f7ca288be1c34f4b33ed13abd805b5cd66d4e) )
- ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_REGION( 0x1000000, "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) )
@@ -2325,17 +2355,18 @@ HACK( 2016, akiradmo, neogeo, neogeo_noslot, neogeo, neogeo_state, neog
HACK( 2002, beast, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jeff Kurtz", "Shadow of the Beast (Neo Geo Demo)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
HACK( 2006, cnbe, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blastar", "Codename: Blut Engel (2006-01-19)(Homebrew)", MACHINE_SUPPORTS_SAVE )
HACK( 2018, cnbe2018, cnbe, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blastar", "Codename: Blut Engel (2018-09-05)(Homebrew)", MACHINE_SUPPORTS_SAVE )
-HACK( 2009, cndi, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "Chip n Dale (Intro Demo)", MACHINE_SUPPORTS_SAVE )
+HACK( 2009, cndi, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "Chip n Dale (Intro demo v1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+HACK( 2009, cndia, cndi, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "Chip n Dale (Intro demo v2)", MACHINE_SUPPORTS_SAVE )
HACK( 2013, cphd, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Le Cortex", "Crouching Pony Hidden Dragon Demo", MACHINE_SUPPORTS_SAVE )
HACK( 1990, columnsn, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jeff Kurtz", "Columns (NeoGeo)(Homebrew)", MACHINE_SUPPORTS_SAVE )
HACK( 1990, columnsncd, columnsn, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jeff Kurtz", "Columns (CD conversion)", MACHINE_SUPPORTS_SAVE )
HACK( 2018, ddsprdmo, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Vasily Familiya", "Double Dragon SpritePool demo", MACHINE_IS_INCOMPLETE | MACHINE_SUPPORTS_SAVE )
HACK( 2018, ddsprdmo1, ddsprdmo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Vasily Familiya", "Double Dragon SpritePool demo (newer)", MACHINE_IS_INCOMPLETE | MACHINE_SUPPORTS_SAVE )
HACK( 2016, didemo, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Mega Shocked", "DatImage demo", MACHINE_SUPPORTS_SAVE )
-HACK( 2009, dti, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "Duck Tales (Intro demo)", MACHINE_SUPPORTS_SAVE )
-HACK( 2009, dti2, dti, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "Duck Tales 2 (Intro demo)", MACHINE_SUPPORTS_SAVE )
-HACK( 2009, dwi, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "DarkWing Duck (Intro demo)", MACHINE_SUPPORTS_SAVE )
-HACK( 2009, dwia, dwi, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "DarkWing Duck (Intro demo)(Alt)", MACHINE_SUPPORTS_SAVE )
+HACK( 2009, dti, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "Duck Tales (Intro demo v1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+HACK( 2009, dtia, dti, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "Duck Tales (Intro demo v2)", MACHINE_SUPPORTS_SAVE )
+HACK( 2009, dwi, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "DarkWing Duck (Intro demo v1)", MACHINE_SUPPORTS_SAVE )
+HACK( 2009, dwia, dwi, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "DarkWing Duck (Intro demo v2)", MACHINE_SUPPORTS_SAVE )
HACK( 2006, ffeast, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Rastersoft", "Frog Feast (NeoGeo)", MACHINE_SUPPORTS_SAVE )
HACK( 2005, ffeastd, ffeast, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Rastersoft", "Frog Feast Demo", MACHINE_SUPPORTS_SAVE )
HACK( 2009, gbi, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "GhostBusters (Intro demo)", MACHINE_SUPPORTS_SAVE )
@@ -2347,7 +2378,7 @@ HACK( 2007, lhcdba, lasthope, neogeo_noslot, neogeo, neogeo_state, neog
HACK( 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 )
HACK( 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 )
HACK( 2005, ltorb, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blastar", "Jonas Indiana and The Lost Temple of RA (beta - 20050717)", MACHINE_SUPPORTS_SAVE )
-HACK( 20??, knacki, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Furrtek", "KnackiBalls", MACHINE_SUPPORTS_SAVE )
+HACK( 2009, knacki, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Furrtek", "KnackiBalls", MACHINE_SUPPORTS_SAVE )
HACK( 2004, neo2500, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blastar", "Neo 2500 Demo", MACHINE_SUPPORTS_SAVE )
HACK( 2012, neo3d, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Oxygene", "Neo 3D Demo", MACHINE_SUPPORTS_SAVE )
HACK( 2017, neobadapple, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "BEY", "Bad Apple demo", MACHINE_SUPPORTS_SAVE )
@@ -2396,14 +2427,14 @@ HACK( 2019, shaman21, shaman16, neogeo_noslot, neogeo, neogeo_state, neog
HACK( 2019, shaman22, shaman16, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Vasily Familiya", "Shaman King demo 0.22", MACHINE_IS_INCOMPLETE | MACHINE_SUPPORTS_SAVE )
HACK( 2019, shaman23, shaman16, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Vasily Familiya", "Shaman King demo 0.23", MACHINE_IS_INCOMPLETE | MACHINE_SUPPORTS_SAVE )
HACK( 2019, shaman24, shaman16, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Vasily Familiya", "Shaman King demo 0.24", MACHINE_IS_INCOMPLETE | MACHINE_SUPPORTS_SAVE )
-HACK( 2009, smi, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "Spiderman (Intro demo)", MACHINE_SUPPORTS_SAVE )
+HACK( 2009, smi, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "Spiderman (Intro demo)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
HACK( 2015, snddemo, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Freem", "Sound-Loop Demo", MACHINE_SUPPORTS_SAVE )
HACK( 2011, spriteex, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Furrtek", "Sprite Experimenter", MACHINE_SUPPORTS_SAVE )
HACK( 2000, syscheck, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blastar", "Neo System Check (ver 1.0b)", MACHINE_SUPPORTS_SAVE )
-HACK( 20??, test01, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Furrtek", "MVS Test 01", MACHINE_SUPPORTS_SAVE )
+HACK( 2000, test01, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Furrtek", "MVS Test 01", MACHINE_SUPPORTS_SAVE )
HACK( 2012, timesupd, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NGF Dev. Inc", "Time's Up! (Demo)", MACHINE_SUPPORTS_SAVE )
-HACK( 2009, tmnti, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "Teenage Mutant Ninja Turtles (Intro demo)", MACHINE_SUPPORTS_SAVE )
-HACK( 2009, tmntia, tmnti, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "Teenage Mutant Ninja Turtles (Intro demo)(Alt)", MACHINE_SUPPORTS_SAVE )
+HACK( 2009, tmnti, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "Teenage Mutant Ninja Turtles (Intro demo v1)", MACHINE_SUPPORTS_SAVE )
+HACK( 2009, tmntia, tmnti, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "Teenage Mutant Ninja Turtles (Intro demo v2)", MACHINE_SUPPORTS_SAVE )
HACK( 2015, twister, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blastar", "Twister in a mirror intro", MACHINE_SUPPORTS_SAVE )
HACK( 2019, venuswars, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Vasily Familiya", "Venus Wars demo", MACHINE_IS_INCOMPLETE | MACHINE_SUPPORTS_SAVE )
HACK( 2018, vlad2000, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Vasily Familiya", "Vladivostok 2000 demo", MACHINE_IS_INCOMPLETE | MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/ngkofmisc.cpp b/docs/release/src/hbmame/drivers/ngkofmisc.cpp
index 84094c3cc71..06af53f3cb2 100644
--- a/docs/release/src/hbmame/drivers/ngkofmisc.cpp
+++ b/docs/release/src/hbmame/drivers/ngkofmisc.cpp
@@ -3419,6 +3419,29 @@ ROM_START( kf2k5unis13 )
ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
ROM_END
+ROM_START( kf2k5unis14 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "363hc14.p1", 0x000000, 0x800000, CRC(956ac7f9) SHA1(d0667d0fbb9ead1db9a8ad273ba8922e08764989) )
+
+ NEO_SFIX_128K( "363xs01.s1", CRC(0ebe5645) SHA1(56a08a5e5209f42e2813a0530c33cf7623aa4cf1) )
+
+ 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
+
/************************
Kof Special Edition 2004
***************************/
@@ -4764,7 +4787,8 @@ HACK( 2005, kf2k5unis09, kof2002, neogeo_noslot, neogeo, neogeo_state, kf2k
HACK( 2005, kf2k5unis10, kof2002, neogeo_noslot, neogeo, neogeo_state, kf2k5uni, ROT0, "oak2003", "Kof 10th Anniversary 2005 Unique (Turn Time Bg Into Half Transparency V2)", MACHINE_SUPPORTS_SAVE )
HACK( 2005, kf2k5unis11, kof2002, neogeo_noslot, neogeo, neogeo_state, kf2k5uni, ROT0, "Eddids[FGCH]", "Kof 10th Anniversary 2005 Unique (Unlimited Credits In Console Mode)", MACHINE_SUPPORTS_SAVE )
HACK( 2005, kf2k5unis12, kof2002, neogeo_noslot, neogeo, neogeo_state, kf2k5uni, ROT0, "oak2003", "Kof 10th Anniversary 2005 Unique (Turn Life-Bar Into Half-Transparency)", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, kf2k5unis13, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Unknown", "Kof 10th Anniversary 2005 Unique (Edition Optimized )", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, kf2k5unis13, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Unknown", "Kof 10th Anniversary 2005 Unique (Edition Optimized)", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, kf2k5unis14, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Unknown", "Kof 10th Anniversary 2005 Unique (Optimized Version 2019 2019-06-05)", MACHINE_SUPPORTS_SAVE )
// Kof Special Edition 2004
HACK( 2004, kof2k4ses01, kof2k4se, neogeo_noslot, neogeo, neogeo_state, kof2k4se, ROT0, "KyoX", "Kof Special Edition 2004 (Translation Portuguese)(Alt)", MACHINE_SUPPORTS_SAVE )
HACK( 2004, kof2k4ses04, kof2k4se, neogeo_noslot, neogeo, neogeo_state, kof2k4se, ROT0, "wesker[FGCH]", "Kof Special Edition 2004 (Unluck Max2 V1)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/pacman.cpp b/docs/release/src/hbmame/drivers/pacman.cpp
index c1669f77515..591855262ae 100644
--- a/docs/release/src/hbmame/drivers/pacman.cpp
+++ b/docs/release/src/hbmame/drivers/pacman.cpp
@@ -299,7 +299,7 @@ INPUT_PORTS_START( mspacman )
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_CHANGED_MEMBER(DEVICE_SELF, pacman_state, pacman_fake, nullptr)
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME( "Speed (Cheat)" ) PORT_CHANGED_MEMBER(DEVICE_SELF, pacman_state, pacman_fake, 0)
PORT_DIPNAME( 0x06, 0x02, "Speed Cheat" )
PORT_DIPSETTING( 0x00, "Disabled" )
PORT_DIPSETTING( 0x02, "Enabled with Button" )
@@ -360,7 +360,7 @@ INPUT_PORTS_START( pacman )
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_CHANGED_MEMBER(DEVICE_SELF, pacman_state, pacman_fake, nullptr)
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME( "Speed (Cheat)" ) PORT_CHANGED_MEMBER(DEVICE_SELF, pacman_state, pacman_fake, 0)
PORT_DIPNAME( 0x06, 0x02, "Speed Cheat" )
PORT_DIPSETTING( 0x00, "Disabled" )
PORT_DIPSETTING( 0x02, "Enabled with Button" )
diff --git a/docs/release/src/hbmame/drivers/pgm.cpp b/docs/release/src/hbmame/drivers/pgm.cpp
index bf891f7850d..686fb0d9908 100644
--- a/docs/release/src/hbmame/drivers/pgm.cpp
+++ b/docs/release/src/hbmame/drivers/pgm.cpp
@@ -13020,7 +13020,7 @@ ROM_START( kovpluss259 )
ROM_REGION( 0x800000, "ics", 0 )
PGM_AUDIO_BIOS
- ROM_LOAD( "pgm_m01s_bios=bh01.rom", 0x000000, 0x200000, CRC(692511a5) SHA1(b272fdd0aa3724ba8ff30d2568c3a6b63f1358b3) )
+ ROM_LOAD( "pgm_m01s_bios=bh01.rom", 0x000000, 0x200000, CRC(692511a5) SHA1(b272fdd0aa3724ba8ff30d2568c3a6b63f1358b3) ) //Bios
ROM_LOAD( "m0600_ph259.rom", 0x400000, 0x400000, CRC(7a50501b) SHA1(1af6be69f3133ed56d4a132a1910cf562da83dac) )
ROM_END
@@ -15427,6 +15427,35 @@ ROM_START( kovpluss347 ) //kovsgyy
ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
ROM_END
+ROM_START( kovpluss348 ) //kovplus2012dw
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600_ph348.119", 0x100000, 0x400000, CRC(071c9274) SHA1(ec65fa717dfabc37fe24c53fd7aeb2c4458a052c) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) //Bios PGM
+ ROM_LOAD( "t0600_ph259.rom", 0x180000, 0x800000, CRC(842b7711) SHA1(b999d55e6e304b4057c66d57bf970f7b181ddac8) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600_ph115.rom", 0x0000000, 0x0800000, CRC(5bd7ea9f) SHA1(0eb33bd0e23441394ae7c6fa28aafe11adf0b22f) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602_ph316.rom", 0x1000000, 0x0800000, CRC(af2c086d) SHA1(3d7b908ee7bdf46b8c1a5e0eac386c13b260cd8e) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600_ph115.rom", 0x0000000, 0x0800000, CRC(07d91ea3) SHA1(8713409439eb4a2875baffbda711587f283a652b) )
+ ROM_LOAD( "b0601_ph316.rom", 0x0800000, 0x0400000, CRC(4ce7b2b8) SHA1(5519a09f3d5ede9064aca7849f687e27bcb77695) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "pgm_m01s_bios=bh01.rom", 0x000000, 0x200000, CRC(692511a5) SHA1(b272fdd0aa3724ba8ff30d2568c3a6b63f1358b3) ) //Bios
+ ROM_LOAD( "m0600_ph259.rom", 0x400000, 0x400000, CRC(7a50501b) SHA1(1af6be69f3133ed56d4a132a1910cf562da83dac) )
+ROM_END
+
ROM_START( kovplusas01 )
ROM_REGION( 0x600000, "maincpu", 0 )
PGM_68K_BIOS
@@ -22109,6 +22138,7 @@ ROM_START( olds100ass01 )
ROM_LOAD16_WORD_SWAP( "p0500_ah01.v10", 0x100000, 0x400000, CRC(f9133fbe) SHA1(6cc801ead9d26b9c5d9921c5500f8848b7188be8) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -22144,6 +22174,7 @@ ROM_START( olds100ass02 )
ROM_LOAD16_WORD_SWAP( "p0500_ah02.v10", 0x100000, 0x400000, CRC(01e8414c) SHA1(ec50a4ff4de7b0321a4171abc17f41a52d0296a9) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -22179,6 +22210,7 @@ ROM_START( olds100ass03 )
ROM_LOAD16_WORD_SWAP( "p0500_ah03.v10", 0x100000, 0x400000, CRC(98c26fce) SHA1(5372f81b7075f4b8cc5ab4149dd47e5e6035ca95) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -22214,6 +22246,7 @@ ROM_START( olds100ass04 )
ROM_LOAD16_WORD_SWAP( "p0500_ah04.v10", 0x100000, 0x400000, CRC(fcb51cc0) SHA1(6d12887f0eaade302f3a2b14cf343a8600c2d557) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -22249,6 +22282,7 @@ ROM_START( olds100ass05 )
ROM_LOAD16_WORD_SWAP( "p0500_ah05.v10", 0x100000, 0x400000, CRC(8ea3ff5a) SHA1(d416e109579264ad6c7cb38226e65f4901619dad) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -22284,6 +22318,7 @@ ROM_START( olds100ass06 )
ROM_LOAD16_WORD_SWAP( "p0500_ah06.v10", 0x100000, 0x400000, CRC(cdce5db9) SHA1(db1ee341141b933e2969f201bc478726c908c0fd) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -22319,6 +22354,7 @@ ROM_START( olds100ass07 )
ROM_LOAD16_WORD_SWAP( "p0500_ah07.v10", 0x100000, 0x400000, CRC(0c6cdb8a) SHA1(a7f293fb7e487ba0d08f5cb5560f81bb807ce996) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -22354,6 +22390,7 @@ ROM_START( olds100ass08 )
ROM_LOAD16_WORD_SWAP( "p0500_ah08.v10", 0x100000, 0x400000, CRC(07f923b7) SHA1(5ea09660ae2a43da8e6f351374ffcce9fcb4a712) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -22389,6 +22426,7 @@ ROM_START( olds100ass09 )
ROM_LOAD16_WORD_SWAP( "p0500_ah09.v10", 0x100000, 0x400000, CRC(b81621c0) SHA1(d4c12092ac15251fdfb0fcfc0e4ae244291bb9a2) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -22424,6 +22462,7 @@ ROM_START( olds100ass10 )
ROM_LOAD16_WORD_SWAP( "p0500_ah10.v10", 0x100000, 0x400000, CRC(e114fe53) SHA1(7a9c3d1b4a723b873c9410d3d3af71a95fe47488) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -22459,6 +22498,7 @@ ROM_START( olds100ass11 )
ROM_LOAD16_WORD_SWAP( "p0500_ah11.v10", 0x100000, 0x400000, CRC(e174df54) SHA1(97a57ccec72898f62e0262e5e99f2efea8a49618) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -22494,6 +22534,7 @@ ROM_START( olds100ass12 )
ROM_LOAD16_WORD_SWAP( "p0500_ah12.v10", 0x100000, 0x400000, CRC(405c6608) SHA1(9057df66f11955b5600cda5a4f4ed07ff9f685d5) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -22529,6 +22570,7 @@ ROM_START( olds100ass13 )
ROM_LOAD16_WORD_SWAP( "p0500_ah13.v10", 0x100000, 0x400000, CRC(fec010af) SHA1(2dac21b7641efab72d7047a7beabda81ff721fb1) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -22564,6 +22606,7 @@ ROM_START( olds100ass14 )
ROM_LOAD16_WORD_SWAP( "p0500_ah14.v10", 0x100000, 0x400000, CRC(17f2df39) SHA1(6f742483e0a68ce6496fe75991edcd4e7c79e3c2) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -22599,6 +22642,7 @@ ROM_START( olds100ass15 )
ROM_LOAD16_WORD_SWAP( "p0500_ah15.v10", 0x100000, 0x400000, CRC(cd2c37c2) SHA1(69bfe886a791c51e6c870ffc603f6590aba18d01) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -22634,6 +22678,7 @@ ROM_START( olds100ass16 )
ROM_LOAD16_WORD_SWAP( "p0500_ah16.v10", 0x100000, 0x400000, CRC(b7fbed70) SHA1(f4ad389f0f14ec8c1c3d73a564e98813a2d332fb) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -22669,6 +22714,7 @@ ROM_START( olds100ass17 )
ROM_LOAD16_WORD_SWAP( "p0500_ah17.v10", 0x100000, 0x400000, CRC(04cd2385) SHA1(a6e89fa505122c1a4991a28a80987951634637ab) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -22704,6 +22750,7 @@ ROM_START( olds100ass18 )
ROM_LOAD16_WORD_SWAP( "p0500_ah18.v10", 0x100000, 0x400000, CRC(e610b340) SHA1(375dfa36d5f59a5e9424a07970a099e9ea0f6906) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -22739,6 +22786,7 @@ ROM_START( olds100ass19 )
ROM_LOAD16_WORD_SWAP( "p0500_ah19.v10", 0x100000, 0x400000, CRC(4300d254) SHA1(405c8cd2e7ffcebda544784b87175d2a91018dc8) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -22774,6 +22822,7 @@ ROM_START( olds100ass20 )
ROM_LOAD16_WORD_SWAP( "p0500_ah20.v10", 0x100000, 0x400000, CRC(754c3fbf) SHA1(a765501b933c11b58f51051737da7b60fc982ddd) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -22809,6 +22858,7 @@ ROM_START( olds100ass21 )
ROM_LOAD16_WORD_SWAP( "p0500_ah21.v10", 0x100000, 0x400000, CRC(507ac5a5) SHA1(6f7490b8609f3957ceedb67d49498f4e1332fcbe) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -22844,6 +22894,7 @@ ROM_START( olds100ass22 )
ROM_LOAD16_WORD_SWAP( "p0500_ah22.v10", 0x100000, 0x400000, CRC(b9819a6f) SHA1(1f5dee7b8387a421b1d506afce50d94c28eb202a) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -22879,6 +22930,7 @@ ROM_START( olds100ass23 )
ROM_LOAD16_WORD_SWAP( "p0500_ah23.v10", 0x100000, 0x400000, CRC(f5073d22) SHA1(f3abe1370449a5208000d5c843a554894fe69527) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -22914,6 +22966,7 @@ ROM_START( olds100ass24 )
ROM_LOAD16_WORD_SWAP( "p0500_ah24.v10", 0x100000, 0x400000, CRC(d02d769c) SHA1(7d6b04daf02b01c2712c3029060ed3a17102cb73) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -22949,6 +23002,7 @@ ROM_START( olds100ass25 )
ROM_LOAD16_WORD_SWAP( "p0500_ah25.v10", 0x100000, 0x400000, CRC(9bf146eb) SHA1(d5d768d661be399877e9fa1afaca552bd324f87b) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -22984,6 +23038,7 @@ ROM_START( olds100ass26 )
ROM_LOAD16_WORD_SWAP( "p0500_ah26.v10", 0x100000, 0x400000, CRC(edd6ca48) SHA1(ac13bf326599b52ac7316f5557e6c88fa7b53110) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -23019,6 +23074,7 @@ ROM_START( olds100ass27 )
ROM_LOAD16_WORD_SWAP( "p0500_ah27.v10", 0x100000, 0x400000, CRC(adc0df6f) SHA1(8d603e90ab361d3d4f230150c0897fba5954a590) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -23054,6 +23110,7 @@ ROM_START( olds100ass28 )
ROM_LOAD16_WORD_SWAP( "p0500_ah28.v10", 0x100000, 0x400000, CRC(1f63e7c9) SHA1(cbf0eda5955764cedcec33f576a624a03c94de48) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -23089,6 +23146,7 @@ ROM_START( olds100ass29 )
ROM_LOAD16_WORD_SWAP( "p0500_ah29.v10", 0x100000, 0x400000, CRC(8981fc87) SHA1(9208c6848962bd14ddb52b39d675c4976669f812) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -23124,6 +23182,7 @@ ROM_START( olds100ass32 )
ROM_LOAD16_WORD_SWAP( "p0500_ah32.v10", 0x100000, 0x400000, CRC(119dcb89) SHA1(19618ea167eab9cbabd0343a166a2b6ce060deda) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -23159,6 +23218,7 @@ ROM_START( olds100ass33 )
ROM_LOAD16_WORD_SWAP( "p0500_ah33.v10", 0x100000, 0x400000, CRC(e6018a06) SHA1(9ae81254be1ced85dba6f8d0e866d0946d4a4785) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -23194,6 +23254,7 @@ ROM_START( olds100ass34 )
ROM_LOAD16_WORD_SWAP( "p0500_ah34.v10", 0x100000, 0x400000, CRC(343a74c3) SHA1(7e41e478c7fb078412417a31fe352b25ecf7e321) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -23229,6 +23290,7 @@ ROM_START( olds100ass35 )
ROM_LOAD16_WORD_SWAP( "p0500_ah35.v10", 0x100000, 0x400000, CRC(74ed447d) SHA1(d8334c633361742c6e333e14af0fada8912faf68) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -23264,6 +23326,7 @@ ROM_START( olds100ass36 )
ROM_LOAD16_WORD_SWAP( "p0500_ah36.v10", 0x100000, 0x400000, CRC(2114e061) SHA1(c067d09a4c9eb3af7344d17ef08136123ed416de) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -23299,6 +23362,7 @@ ROM_START( olds100ass37 )
ROM_LOAD16_WORD_SWAP( "p0500_ah37.v10", 0x100000, 0x400000, CRC(618ddd99) SHA1(115d1fbaadffa3116d999adfa71a1e5e52412e66) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -23334,6 +23398,7 @@ ROM_START( olds100ass38 )
ROM_LOAD16_WORD_SWAP( "p0500_ah38.v10", 0x100000, 0x400000, CRC(333bfd23) SHA1(561ea5d6dc9331c1b11c832f0e4b61abe8eeb247) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -23369,6 +23434,7 @@ ROM_START( olds100ass39 )
ROM_LOAD16_WORD_SWAP( "p0500_ah39.v10", 0x100000, 0x400000, CRC(a685ff5e) SHA1(f3f83c7ba8b836c07c96fe48fb23e016e672d80e) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -23404,6 +23470,7 @@ ROM_START( olds100ass40 )
ROM_LOAD16_WORD_SWAP( "p0500_ah40.v10", 0x100000, 0x400000, CRC(a5d9e66d) SHA1(fa6fa4020d9e27824688c6306364c98a8716f224) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -23439,6 +23506,7 @@ ROM_START( olds100ass41 )
ROM_LOAD16_WORD_SWAP( "p0500_ah41.v10", 0x100000, 0x400000, CRC(173dbbe1) SHA1(12e627c5fe51af587f1e0f5c7dfde13dc63b746a) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -23474,6 +23542,7 @@ ROM_START( olds100ass42 )
ROM_LOAD16_WORD_SWAP( "p0500_ah42.v10", 0x100000, 0x400000, CRC(d65a13df) SHA1(212e1ffe375f2a7e95611fbcad90ee9b91b69107) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -23509,6 +23578,7 @@ ROM_START( olds100ass43 )
ROM_LOAD16_WORD_SWAP( "p0500_ah43.v10", 0x100000, 0x400000, CRC(cdd92c41) SHA1(9d3da588056e4ee19c680363b384b3e8fc9d1ffc) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -23544,6 +23614,7 @@ ROM_START( olds100ass44 )
ROM_LOAD16_WORD_SWAP( "p0500_ah44.v10", 0x100000, 0x400000, CRC(5e689a44) SHA1(69e56fe5728e69cd9d455201d155e033ca8505ab) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -23579,6 +23650,7 @@ ROM_START( olds100ass45 )
ROM_LOAD16_WORD_SWAP( "p0500_ah45.v10", 0x100000, 0x400000, CRC(d94a3c07) SHA1(b69c2028bdba7c2b901c8117193d4c5f8652f6cc) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -23614,6 +23686,7 @@ ROM_START( olds100ass46 )
ROM_LOAD16_WORD_SWAP( "p0500_ah46.v10", 0x100000, 0x400000, CRC(bc66a3b4) SHA1(ffe379a6790068be8baeaf8dcf792a8b038b6e49) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -23649,6 +23722,7 @@ ROM_START( olds100ass47 )
ROM_LOAD16_WORD_SWAP( "p0500_ah47.v10", 0x100000, 0x400000, CRC(7be881f6) SHA1(8bebf7335debde8da3fbe058d2613b1357087736) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -23684,6 +23758,7 @@ ROM_START( olds100ass48 )
ROM_LOAD16_WORD_SWAP( "p0500_ah48.v10", 0x100000, 0x400000, CRC(d8b762e3) SHA1(36d3b5b4bd957db861252448adb29d8d6f0fe692) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -23719,6 +23794,7 @@ ROM_START( olds100ass49 )
ROM_LOAD16_WORD_SWAP( "p0500_ah49.v10", 0x100000, 0x400000, CRC(62c38016) SHA1(fc42a611b27f6d36c7c9fa3c706dfddd33c46da8) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -23754,6 +23830,7 @@ ROM_START( olds100ass50 )
ROM_LOAD16_WORD_SWAP( "p0500_ah50.v10", 0x100000, 0x400000, CRC(746834bd) SHA1(59390a3a8f997bd9abf52a3fefad8a5721556e72) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -23789,6 +23866,7 @@ ROM_START( olds100ass51 )
ROM_LOAD16_WORD_SWAP( "p0500_ah51.v10", 0x100000, 0x400000, CRC(a3db49f1) SHA1(952cce122fbd92e8ef650984cd28ac25688621b9) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -23824,6 +23902,7 @@ ROM_START( olds100ass52 )
ROM_LOAD16_WORD_SWAP( "p0500_ah52.v10", 0x100000, 0x400000, CRC(a02bf3c3) SHA1(23c76c9226fb571b13b58cf0c228b1ea584c3adb) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -23859,6 +23938,7 @@ ROM_START( olds100ass53 )
ROM_LOAD16_WORD_SWAP( "p0500_ah53.v10", 0x100000, 0x400000, CRC(01ebd435) SHA1(f31cdcc0511dc2e333fb6c3698823b55f0040634) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -23894,6 +23974,7 @@ ROM_START( olds100ass54 )
ROM_LOAD16_WORD_SWAP( "p0500_ah54.v10", 0x100000, 0x400000, CRC(9455d648) SHA1(4fbdf10209b371627a718106cd4f65e9d9e93db0) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -23929,6 +24010,7 @@ ROM_START( olds100ass55 )
ROM_LOAD16_WORD_SWAP( "p0500_ah55.v10", 0x100000, 0x400000, CRC(9709cf7b) SHA1(3d12713e32818d03b61f6119c8316a5f8dbc3342) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -23964,6 +24046,7 @@ ROM_START( olds100ass56 )
ROM_LOAD16_WORD_SWAP( "p0500_ah56.v10", 0x100000, 0x400000, CRC(a6e54509) SHA1(7e043ca4173fdb11a2aa81f8f8f578eca968d458) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -23999,6 +24082,7 @@ ROM_START( olds100ass57 )
ROM_LOAD16_WORD_SWAP( "p0500_ah57.v10", 0x100000, 0x400000, CRC(3272f820) SHA1(c108ba5346901877eef6e1bb47e5efcae74ae159) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -24034,6 +24118,7 @@ ROM_START( olds100ass58 )
ROM_LOAD16_WORD_SWAP( "p0500_ah58.v10", 0x100000, 0x400000, CRC(9e356f8b) SHA1(524bc7956381f9be973be259420483d4a5f941bf) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -24069,6 +24154,7 @@ ROM_START( olds100ass59 )
ROM_LOAD16_WORD_SWAP( "p0500_ah59.v10", 0x100000, 0x400000, CRC(571efee3) SHA1(fc4a69bc092d1a50113286adbb499e57b8e9b914) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -24104,6 +24190,7 @@ ROM_START( olds100ass60 )
ROM_LOAD16_WORD_SWAP( "p0500_ah60.v10", 0x100000, 0x400000, CRC(930dc2bb) SHA1(681aae0be3a9b61f3ae0adfe1a7fae821b856578) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -24139,6 +24226,7 @@ ROM_START( olds100ass61 )
ROM_LOAD16_WORD_SWAP( "p0500_ah61.v10", 0x100000, 0x400000, CRC(fbf202cf) SHA1(d52630beaa8a06973662bfaf920f09b46606e06c) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -24174,6 +24262,7 @@ ROM_START( olds100ass62 )
ROM_LOAD16_WORD_SWAP( "p0500_ah62.v10", 0x100000, 0x400000, CRC(36c079d3) SHA1(dd460fc8dd84a89dafda26c28de26568d13af1aa) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -24209,6 +24298,7 @@ ROM_START( olds100ass63 )
ROM_LOAD16_WORD_SWAP( "p0500_ah63.v10", 0x100000, 0x400000, CRC(d001979c) SHA1(732b1028e6254a852544247888964fa99b732f3a) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -24244,6 +24334,7 @@ ROM_START( olds100ass64 )
ROM_LOAD16_WORD_SWAP( "p0500_ah64.v10", 0x100000, 0x400000, CRC(312181b9) SHA1(9f1dcab2b60fea6b377df695d260743a07ae5bec) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -24279,6 +24370,7 @@ ROM_START( olds100ass65 )
ROM_LOAD16_WORD_SWAP( "p0500_ah65.v10", 0x100000, 0x400000, CRC(8d9b5763) SHA1(e9aa1f82bb6ea6a529338a71a96ecac208637d5d) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -24314,6 +24406,7 @@ ROM_START( olds100ass66 )
ROM_LOAD16_WORD_SWAP( "p0500_ah66.v10", 0x100000, 0x400000, CRC(84a61162) SHA1(82e3597e1ca8736d8435221b17c0a46929adcd2e) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -24349,6 +24442,7 @@ ROM_START( olds100ass67 )
ROM_LOAD16_WORD_SWAP( "p0500_ah67.v10", 0x100000, 0x400000, CRC(4f056900) SHA1(2e30dab6d017d156a3aa1910e3422b46d29639be) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -24384,6 +24478,7 @@ ROM_START( olds100ass68 )
ROM_LOAD16_WORD_SWAP( "p0500_ah68.v10", 0x100000, 0x400000, CRC(e8233797) SHA1(e9827760944b76db5589cf3f7ab464f916f6fcfd) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -24419,6 +24514,7 @@ ROM_START( olds100ass69 )
ROM_LOAD16_WORD_SWAP( "p0500_ah69.v10", 0x100000, 0x400000, CRC(d56475e6) SHA1(a31cb41239393af9f7c772666299898b659df1c5) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -24454,6 +24550,7 @@ ROM_START( olds100ass70 )
ROM_LOAD16_WORD_SWAP( "p0500_ah70.v10", 0x100000, 0x400000, CRC(fa234d4c) SHA1(16f8d4bd99fbead819b01b0f144fd1b66d4beb3a) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -24489,6 +24586,7 @@ ROM_START( olds100ass71 )
ROM_LOAD16_WORD_SWAP( "p0500_ah71.v10", 0x100000, 0x400000, CRC(d6ec0f63) SHA1(174868ee9573bbd6d47562799913ab238a5e3c5b) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -24524,6 +24622,7 @@ ROM_START( olds100ass72 )
ROM_LOAD16_WORD_SWAP( "p0500_ah72.v10", 0x100000, 0x400000, CRC(35381d67) SHA1(3a58e99d6d902b4c3efb7d837ea1312c8fe164aa) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -24559,6 +24658,7 @@ ROM_START( olds100ass73 )
ROM_LOAD16_WORD_SWAP( "p0500_ah73.v10", 0x100000, 0x400000, CRC(efd59c5e) SHA1(3d86bd7ebe41d1dfbef707dc9d656d47b1a8f29c) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -24594,6 +24694,7 @@ ROM_START( olds100ass74 )
ROM_LOAD16_WORD_SWAP( "p0500_ah74.v10", 0x100000, 0x400000, CRC(9db3d051) SHA1(b6e41144c21d3a6ce21e81cfcb39b4858b7a174a) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -24629,6 +24730,7 @@ ROM_START( olds100ass75 )
ROM_LOAD16_WORD_SWAP( "p0500_ah75.v10", 0x100000, 0x400000, CRC(c45eeb67) SHA1(fd887111d459fdd95998a1bc454c623ee73e6aed) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -24664,6 +24766,7 @@ ROM_START( olds100ass76 )
ROM_LOAD16_WORD_SWAP( "p0500_ah76.v10", 0x100000, 0x400000, CRC(9aed69d9) SHA1(1872802360217e50235e622d55ccc0e6e1f3f23f) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -24699,6 +24802,7 @@ ROM_START( olds100ass77 )
ROM_LOAD16_WORD_SWAP( "p0500_ah77.v10", 0x100000, 0x400000, CRC(c7e05174) SHA1(a078fe7bd8e19d18a78ae621687d9bff28796a05) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -24734,6 +24838,7 @@ ROM_START( olds100ass78 )
ROM_LOAD16_WORD_SWAP( "p0500_ah78.v10", 0x100000, 0x400000, CRC(db744735) SHA1(514f8dc2b256e4aacab0ba9ce3cdc9a5ef1f5565) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -24769,6 +24874,7 @@ ROM_START( olds100ass79 )
ROM_LOAD16_WORD_SWAP( "p0500_ah79.v10", 0x100000, 0x400000, CRC(0395338e) SHA1(cfc78cd3c7efe9bafc5d21b822f9c085a3cb8edf) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -24804,6 +24910,7 @@ ROM_START( olds100ass80 )
ROM_LOAD16_WORD_SWAP( "p0500_ah80.v10", 0x100000, 0x400000, CRC(93cc6fcf) SHA1(23c27a6ea91d0fc07f5cf050ab880c3106c217a5) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -24839,6 +24946,7 @@ ROM_START( olds100ass81 )
ROM_LOAD16_WORD_SWAP( "p0500_ah81.v10", 0x100000, 0x400000, CRC(03dd5d6c) SHA1(eb6ea65f1405071d2d6dafe6c4b1e7472a5eb3b3) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -24874,6 +24982,7 @@ ROM_START( olds100ass82 )
ROM_LOAD16_WORD_SWAP( "p0500_ah82.v10", 0x100000, 0x400000, CRC(cff68de7) SHA1(84912e5d3b1036cefa634e94e5c7a7bd3bc63de7) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -24909,6 +25018,7 @@ ROM_START( olds100ass83 )
ROM_LOAD16_WORD_SWAP( "p0500_ah83.v10", 0x100000, 0x400000, CRC(821b0b78) SHA1(6b275c2f05ffa2c33841fa6706b65634ae95e0a8) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -24944,6 +25054,7 @@ ROM_START( olds100ass84 )
ROM_LOAD16_WORD_SWAP( "p0500_ah84.v10", 0x100000, 0x400000, CRC(002df4d2) SHA1(df84722d8373ea3e998ea69d5158855ffd06a68e) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -24979,6 +25090,7 @@ ROM_START( olds100ass85 )
ROM_LOAD16_WORD_SWAP( "p0500_ah85.v10", 0x100000, 0x400000, CRC(b7997b62) SHA1(63c521c9b4948d5330a1c5816e17de615b06b755) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -25014,6 +25126,7 @@ ROM_START( olds100ass86 )
ROM_LOAD16_WORD_SWAP( "p0500_ah86.v10", 0x100000, 0x400000, CRC(ee363849) SHA1(e061da66260d28e183d5578f49e4baafe69c4508) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -25049,6 +25162,7 @@ ROM_START( olds100ass87 )
ROM_LOAD16_WORD_SWAP( "p0500_ah87.v10", 0x100000, 0x400000, CRC(f8ab1e69) SHA1(5ce6a009e2ded29edb847289cc33223096ed5201) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -25084,6 +25198,7 @@ ROM_START( olds100ass88 )
ROM_LOAD16_WORD_SWAP( "p0500_ah88.v10", 0x100000, 0x400000, CRC(47e43f30) SHA1(caa546a0e283630b25ab56d8e6e249f8335a21f2) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -25119,6 +25234,7 @@ ROM_START( olds100ass89 )
ROM_LOAD16_WORD_SWAP( "p0500_ah89.v10", 0x100000, 0x400000, CRC(ba7e17cb) SHA1(26459484a215c9f7116a4e4637d249a2523c2cd9) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -25154,6 +25270,7 @@ ROM_START( olds100ass90 )
ROM_LOAD16_WORD_SWAP( "p0500_ah90.v10", 0x100000, 0x400000, CRC(304d47d9) SHA1(d2a8a4cdcc0bc41364a7ac7a461696a9032999d1) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -25189,6 +25306,7 @@ ROM_START( olds100ass91 )
ROM_LOAD16_WORD_SWAP( "p0500_ah91.v10", 0x100000, 0x400000, CRC(f2f65d45) SHA1(d2e2cf0c649bfa925102a42f4afdb9b080d76583) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -25224,6 +25342,7 @@ ROM_START( olds100ass92 )
ROM_LOAD16_WORD_SWAP( "p0500_ah92.v10", 0x100000, 0x400000, CRC(6ecd8e4b) SHA1(a9a24d1b2c5f275b85acd79c1e57b4cec43cbea3) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -25259,6 +25378,7 @@ ROM_START( olds100ass93 )
ROM_LOAD16_WORD_SWAP( "p0500_ah93.v10", 0x100000, 0x400000, CRC(322a1e41) SHA1(23ac4a0497650b23485df5c8f05122cb9537d01b) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -25294,6 +25414,7 @@ ROM_START( olds100ass94 )
ROM_LOAD16_WORD_SWAP( "p0500_ah94.v10", 0x100000, 0x400000, CRC(853afbfc) SHA1(795e6e90f33151d4db206b2b580b461198c03e89) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -25329,6 +25450,7 @@ ROM_START( olds100ass95 )
ROM_LOAD16_WORD_SWAP( "p0500_ah95.v10", 0x100000, 0x400000, CRC(65715252) SHA1(f9f2eadae0ffe3b101dfac81d555c4d0577d5d19) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -25364,6 +25486,7 @@ ROM_START( olds100ass96 )
ROM_LOAD16_WORD_SWAP( "p0500_ah96.v10", 0x100000, 0x400000, CRC(cc3571db) SHA1(dddce0480cd3d20ffcb913659e2e687fa21d19f1) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -25399,6 +25522,7 @@ ROM_START( olds100ass97 )
ROM_LOAD16_WORD_SWAP( "p0500_ah97.v10", 0x100000, 0x400000, CRC(8e778186) SHA1(92c1cf7e57807ae29b22e85edbf439ed4d95192d) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -25434,6 +25558,7 @@ ROM_START( olds100ass98 )
ROM_LOAD16_WORD_SWAP( "p0500_ah98.v10", 0x100000, 0x400000, CRC(407b5aa3) SHA1(5ba7e74ba52191a0c163744119e653ce435bf47c) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -25469,6 +25594,7 @@ ROM_START( olds100ass99 )
ROM_LOAD16_WORD_SWAP( "p0500_ah99.v10", 0x100000, 0x400000, CRC(0b81c39c) SHA1(432b1e4d127d099da4530d89f4fa983d96d88298) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -25504,6 +25630,7 @@ ROM_START( olds100ass100 )
ROM_LOAD16_WORD_SWAP( "p0500_ah100.v10", 0x100000, 0x400000, CRC(3a07a862) SHA1(6f8a5636a0f1f73be100eab2730ba22555dfec2f) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -25539,6 +25666,7 @@ ROM_START( olds100ass101 )
ROM_LOAD16_WORD_SWAP( "p0500_ah101.v10", 0x100000, 0x400000, CRC(da40ae72) SHA1(0c5fe59799e931f49c3f3f000485f9cf7bf7b0af) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -25574,6 +25702,7 @@ ROM_START( olds100ass102 )
ROM_LOAD16_WORD_SWAP( "p0500_ah102.v10", 0x100000, 0x400000, CRC(4d3aa60f) SHA1(71393ca8b20cf25925ad13d68c1fe233994dfb14) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -25609,6 +25738,7 @@ ROM_START( olds100ass103 )
ROM_LOAD16_WORD_SWAP( "p0500_ah103.v10", 0x100000, 0x400000, CRC(cea5f10c) SHA1(7de7666aa0650627a9ac80fb82bc188048723e2e) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -25644,6 +25774,7 @@ ROM_START( olds100ass104 )
ROM_LOAD16_WORD_SWAP( "p0500_ah104.v10", 0x100000, 0x400000, CRC(ccbc29c3) SHA1(aab1127a7ce388883d01061ce3f1b68f0d813c9a) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -25679,6 +25810,7 @@ ROM_START( olds100ass105 )
ROM_LOAD16_WORD_SWAP( "p0500_ah105.v10", 0x100000, 0x400000, CRC(173e7fd6) SHA1(a085ecce91eb7fde9affbb7b5ca83109973aa9d3) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -25714,6 +25846,7 @@ ROM_START( olds100ass106 )
ROM_LOAD16_WORD_SWAP( "p0500_ah106.v10", 0x100000, 0x400000, CRC(8e2289d3) SHA1(7e46f71f400659eec9ad5782c73f90d98fcf4079) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -25749,6 +25882,7 @@ ROM_START( olds100ass107 )
ROM_LOAD16_WORD_SWAP( "p0500_ah107.v10", 0x100000, 0x400000, CRC(94c697e5) SHA1(dc343c4ef02ce89df53ce66d0aff7e7e313f475e) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -25784,6 +25918,7 @@ ROM_START( olds100ass108 )
ROM_LOAD16_WORD_SWAP( "p0500_ah108.v10", 0x100000, 0x400000, CRC(5a34ad12) SHA1(ee430c01880553e2986674f16d439a3f40c97ea1) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -25819,6 +25954,7 @@ ROM_START( olds100ass109 )
ROM_LOAD16_WORD_SWAP( "p0500_ah109.v10", 0x100000, 0x400000, CRC(80e75480) SHA1(877fc2ee78eaf1a237edf0ed3d64936fbae86d59) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -25854,6 +25990,7 @@ ROM_START( olds100ass110 )
ROM_LOAD16_WORD_SWAP( "p0500_ah110.v10", 0x100000, 0x400000, CRC(c01107e5) SHA1(0f07c217488f4fcae64a5af852f0d7a9ab98b3b5) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -25889,6 +26026,7 @@ ROM_START( olds100ass111 )
ROM_LOAD16_WORD_SWAP( "p0500_ah111.v10", 0x100000, 0x400000, CRC(a8edacbb) SHA1(b3d62539ce4c678826b8d4b9b5ee18faed82c868) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -25924,6 +26062,7 @@ ROM_START( olds100ass112 )
ROM_LOAD16_WORD_SWAP( "p0500_ah112.v10", 0x100000, 0x400000, CRC(20351dc1) SHA1(215b075759527530f28e6280871ffd754d239bd4) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -25959,6 +26098,7 @@ ROM_START( olds100ass113 )
ROM_LOAD16_WORD_SWAP( "p0500_ah113.v10", 0x100000, 0x400000, CRC(39c8843d) SHA1(4f7a706e3e94cff1a43a48e470e2667a0faf0815) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -25994,6 +26134,7 @@ ROM_START( olds100ass114 )
ROM_LOAD16_WORD_SWAP( "p0500_ah114.v10", 0x100000, 0x400000, CRC(b3a83417) SHA1(36e9c6ab416708d02dd10df41ab66ae3f2bf8d61) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -26029,6 +26170,7 @@ ROM_START( olds100ass115 )
ROM_LOAD16_WORD_SWAP( "p0500_ah115.v10", 0x100000, 0x400000, CRC(3ffb13c7) SHA1(27c0282e60d227fc7cba26026adb1a027c6ab1f6) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -26064,6 +26206,7 @@ ROM_START( olds100ass116 )
ROM_LOAD16_WORD_SWAP( "p0500_ah116.v10", 0x100000, 0x400000, CRC(78aefb94) SHA1(247e3e78954e31f1791194038d76f8e8fdad74ad) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -26099,6 +26242,7 @@ ROM_START( olds100ass117 )
ROM_LOAD16_WORD_SWAP( "p0500_ah117.v10", 0x100000, 0x400000, CRC(c334de75) SHA1(97046103c9cfe3733ca49cbcced24c463c49cf90) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -26134,6 +26278,7 @@ ROM_START( olds100ass118 )
ROM_LOAD16_WORD_SWAP( "p0500_ah118.v10", 0x100000, 0x400000, CRC(cccd55fe) SHA1(2d9eb747d890c9e6ba7a88863068ffcfc2623f77) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -26169,6 +26314,7 @@ ROM_START( olds100ass119 )
ROM_LOAD16_WORD_SWAP( "p0500_ah119.v10", 0x100000, 0x400000, CRC(9f6f8d53) SHA1(417d5bf7c396d03db046bec69e2e024d3ad8a8a9) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -26204,6 +26350,7 @@ ROM_START( olds100ass120 )
ROM_LOAD16_WORD_SWAP( "p0500_ah120.v10", 0x100000, 0x400000, CRC(77f6e51d) SHA1(1dedf1d5529d74f6414632755376c37266ba90fd) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -26239,6 +26386,7 @@ ROM_START( olds100ass121 )
ROM_LOAD16_WORD_SWAP( "p0500_ah121.v10", 0x100000, 0x400000, CRC(7062f022) SHA1(2a5ddad499d9f609a9d29f7cc4c246a40ea5ddc3) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -26274,6 +26422,7 @@ ROM_START( olds100ass122 )
ROM_LOAD16_WORD_SWAP( "p0500_ah122.v10", 0x100000, 0x400000, CRC(13e4b9fa) SHA1(27bd0efc602eed262753dd79fdec3ce60ad27c27) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -26309,6 +26458,7 @@ ROM_START( olds100ass123 )
ROM_LOAD16_WORD_SWAP( "p0500_ah123.v10", 0x100000, 0x400000, CRC(86aa9332) SHA1(036cf2d3fbe0354fd5b052f57b8f1f520a7cca27) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -26344,6 +26494,7 @@ ROM_START( olds100ass124 )
ROM_LOAD16_WORD_SWAP( "p0500_ah124.v10", 0x100000, 0x400000, CRC(95bebd77) SHA1(a283eb8932eeae9b851849ca825879a56348b2d1) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -26379,6 +26530,7 @@ ROM_START( olds100ass125 )
ROM_LOAD16_WORD_SWAP( "p0500_ah125.v10", 0x100000, 0x400000, CRC(47ce8562) SHA1(8465ef44f027d9e017a59d33990be6da17098997) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -26415,6 +26567,7 @@ ROM_START( olds100ass126 )
ROM_IGNORE( 0x54F47 )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -26451,6 +26604,7 @@ ROM_START( olds100ass127 )
ROM_IGNORE( 0x54F48 )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -26487,6 +26641,7 @@ ROM_START( olds100ass128 )
ROM_IGNORE( 0x54F47 )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump_ah128", 0x000000, 0x04000, CRC(619cc52d) SHA1(f249a0b58c8790a42d042ad09eb28d8d4eeb20eb) )
@@ -26523,6 +26678,7 @@ ROM_START( olds100ass129 )
ROM_IGNORE( 0x54F48 )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -26559,6 +26715,7 @@ ROM_START( olds100ass130 )
ROM_IGNORE( 0x54F47 )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump_ah130", 0x000000, 0x04000, CRC(e7b26aea) SHA1(17d101f760d790619ce4858984787b494bdbbc8a) )
@@ -26595,6 +26752,7 @@ ROM_START( olds100ass131 )
ROM_LOAD16_WORD_SWAP( "p0500_ah131.v10", 0x100000, 0x400000, CRC(f5f17e7c) SHA1(cd021a8feb1116b307c6b8416b1e6b83d22514fb) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -26630,6 +26788,7 @@ ROM_START( olds100ass132 )
ROM_LOAD16_WORD_SWAP( "p0500_ah132.v10", 0x100000, 0x400000, CRC(45a67179) SHA1(f136f3aec15eeda7be7c083d5dbdb8fef16d9031) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -26665,6 +26824,7 @@ ROM_START( olds100ass133 )
ROM_LOAD16_WORD_SWAP( "p0500_ah133.v10", 0x100000, 0x400000, CRC(f059dfb5) SHA1(b6aaa9479a421257c8a7412618277aacacebce3c) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -26700,6 +26860,7 @@ ROM_START( olds100ass134 )
ROM_LOAD16_WORD_SWAP( "p0500_ah134.v10", 0x100000, 0x400000, CRC(13ad261a) SHA1(6c01383d1102d0b69c909fc8ef9b02f91cb122fc) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -26735,6 +26896,7 @@ ROM_START( olds100ass135 )
ROM_LOAD16_WORD_SWAP( "p0500_ah135.v10", 0x100000, 0x400000, CRC(9fa9540f) SHA1(43bc0b474ac0975eaa5af9f589f21240eb5aa9a5) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -26770,6 +26932,7 @@ ROM_START( olds100ass136 )
ROM_LOAD16_WORD_SWAP( "p0500_ah136.v10", 0x100000, 0x400000, CRC(17ca6649) SHA1(87b5128d0e6376c8ff4297e84f1e8bbad24bb28a) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -26805,6 +26968,7 @@ ROM_START( olds100ass137 )
ROM_LOAD16_WORD_SWAP( "p0500_ah137.v10", 0x100000, 0x400000, CRC(dd9d040b) SHA1(c4369e294c537d7c62819158a3b4960588b8fdbc) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -26840,6 +27004,7 @@ ROM_START( olds100ass138 )
ROM_LOAD16_WORD_SWAP( "p0500_ah138.v10", 0x100000, 0x400000, CRC(d77ee880) SHA1(7dbf1f03781d3f468e586654ec48c1cd200bc802) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -26875,6 +27040,7 @@ ROM_START( olds100ass139 )
ROM_LOAD16_WORD_SWAP( "p0500_ah139.v10", 0x100000, 0x400000, CRC(bed6d02d) SHA1(888a9821ccc26607c32684252811d129db177ba3) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -26910,6 +27076,7 @@ ROM_START( olds100ass140 )
ROM_LOAD16_WORD_SWAP( "p0500_ah140.v10", 0x100000, 0x400000, CRC(6fd0df4d) SHA1(217de3cba56c68504bd923345b0b34741b0a8bb7) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -26945,6 +27112,7 @@ ROM_START( olds100ass141 )
ROM_LOAD16_WORD_SWAP( "p0500_ah141.v10", 0x100000, 0x400000, CRC(fbf9e737) SHA1(fe04230499fa4b9b833e1d97986f22d02659f688) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -26980,6 +27148,7 @@ ROM_START( olds100ass142 )
ROM_LOAD16_WORD_SWAP( "p0500_ah142.v10", 0x100000, 0x400000, CRC(5162b454) SHA1(13314a0abceb96453527a9343066ca98242f72d7) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -27015,6 +27184,7 @@ ROM_START( olds100ass143 )
ROM_LOAD16_WORD_SWAP( "p0500_ah143.v10", 0x100000, 0x400000, CRC(de996dd4) SHA1(53feecf2bdfdb59aa1fd2796849755e96d567536) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -27050,6 +27220,7 @@ ROM_START( olds100ass144 )
ROM_LOAD16_WORD_SWAP( "p0500_ah144.v10", 0x100000, 0x400000, CRC(100bd69e) SHA1(2d86eed6c403168a7159b348431f3591410ab3ef) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -27085,6 +27256,7 @@ ROM_START( olds100ass145 )
ROM_LOAD16_WORD_SWAP( "p0500_ah145.v10", 0x100000, 0x400000, CRC(f39435b3) SHA1(ea9d79d76a851233e944910bc61efcb3d8323e65) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -27120,6 +27292,7 @@ ROM_START( olds100ass146 )
ROM_LOAD16_WORD_SWAP( "p0500_ah146.v10", 0x100000, 0x400000, CRC(fc1bcd42) SHA1(e16bc382df78b71672c352bf19965755ce562244) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -27155,6 +27328,7 @@ ROM_START( olds100ass147 )
ROM_LOAD16_WORD_SWAP( "p0500_ah147.v10", 0x100000, 0x400000, CRC(d63d9999) SHA1(c8925a21f9e6c97b3b64ea8a60f6da7f7e274550) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -27190,6 +27364,7 @@ ROM_START( olds100ass148 )
ROM_LOAD16_WORD_SWAP( "p0500_ah148.v10", 0x100000, 0x400000, CRC(3541e3b5) SHA1(67cbdee7be4e210a7ecc1ebe70e825ac54bcfdd9) )
ROM_REGION( 0x010000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
ROM_REGION( 0x4000, "user2", ROMREGION_ERASEFF )
ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
@@ -31131,11 +31306,12 @@ HACK( 2015, kovpluss339, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1
HACK( 2015, kovpluss340, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Gotvg", "Knights of Valour Plus (2012 2015-06-16)", MACHINE_SUPPORTS_SAVE )
HACK( 2016, kovpluss341, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Gotvg", "Knights of Valour Plus (Classic Unrivalled Version 2016-01-25)", MACHINE_SUPPORTS_SAVE )
HACK( 2015, kovpluss342, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Gotvg", "Knights of Valour Plus (Qin Shuang Qing Shang 2015-01-17)", MACHINE_SUPPORTS_SAVE )
-HACK( 2016, kovpluss343, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Gotvg", "Knights of Valour Plus (Plus 2018-02-02)", MACHINE_SUPPORTS_SAVE )
-HACK( 2016, kovpluss344, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Gotvg", "Knights of Valour Plus (Dream of Shuang Er 2018-01-09)", MACHINE_SUPPORTS_SAVE )
-HACK( 2016, kovpluss345, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Gotvg", "Knights of Valour Plus (Ordinary Soldiers 2018-12-25)", MACHINE_SUPPORTS_SAVE )
-HACK( 2016, kovpluss346, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Gotvg", "Knights of Valour Plus (Ordinary Soldiers 2 2018-12-25)", MACHINE_SUPPORTS_SAVE )
-HACK( 2016, kovpluss347, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Gotvg", "Knights of Valour Plus (Dream of Tu Mi 2018-03-05)", MACHINE_SUPPORTS_SAVE )
+HACK( 2018, kovpluss343, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Gotvg", "Knights of Valour Plus (Plus 2018-02-02)", MACHINE_SUPPORTS_SAVE )
+HACK( 2018, kovpluss344, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Gotvg", "Knights of Valour Plus (Dream of Shuang Er 2018-01-09)", MACHINE_SUPPORTS_SAVE )
+HACK( 2018, kovpluss345, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Gotvg", "Knights of Valour Plus (Ordinary Soldiers 2018-12-25)", MACHINE_SUPPORTS_SAVE )
+HACK( 2018, kovpluss346, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Gotvg", "Knights of Valour Plus (Ordinary Soldiers 2 2018-12-25)", MACHINE_SUPPORTS_SAVE )
+HACK( 2018, kovpluss347, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Gotvg", "Knights of Valour Plus (Dream of Tu Mi 2018-03-05)", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, kovpluss348, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Gotvg", "Knights of Valour Plus (2012 Musou Edition 2019-04-15)", MACHINE_SUPPORTS_SAVE )
HACK( 1999, kovplusas01, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Creamymami", "Knights of Valour Plus (Enhanced Power)", MACHINE_SUPPORTS_SAVE )
// Knights of Valour Super Heroes
HACK( 1999, kovshs01, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Unknown", "Knights of Valour Super Heroes (FY 2016 4th Edition)", MACHINE_SUPPORTS_SAVE ) // This roms is already verified
@@ -31376,107 +31552,107 @@ HACK( 2001, martmasts01, martmast, pgm_arm_type2, martmast, pgm_arm_type2
//Xiyou Shi E Chuan Super
HACK( 1998, olds103ts01, olds, pgm, pgm, pgm_state, pgm, ROT0, "Unknown", "Xiyou Shi E Chuan Super (Unknown Hack 2014-07-16)", MACHINE_SUPPORTS_SAVE )
//Oriental Legend Super
-HACK( 1998, olds100s01, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Creamymami", "Oriental Legend Special (Enhanced power)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass01, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Xyahzhs", "Oriental Legend Special (West S-Fengyun Restarts B2)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass02, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Hundred Ghost Night)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass03, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Boss Battle Mode)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass04, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "QQ84381882", "Oriental Legend Special (Perfect Conqueror)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass05, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Enemy Wukong)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass06, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Enemy Wukong 2)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass07, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Super Perfect Big Magic And Small Magic)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass08, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Phoenix Dance Nine Days)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass09, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Phoenix Dance Nine Days Second Edition Revised Edition)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass10, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Change)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass11, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (The Original Moves Plus My Moves Additionally Strengthen Boss, Metamorphosis Level)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass12, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (West S Battered Dragon Version)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass13, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (West S Battered Zombie Version)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass14, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (West S Dragon's Version Of Blood Can Be Sent To The Ground)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass15, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (West S Dragon Edition Full Character Does Not Need Gas Gathering To Send All Moves)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass16, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (West S Dragon Reduction (No Energy Version Required))", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass17, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (West S Dragon Edition Joins The Call)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass18, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (S perfect Online Substitution [Calling Version])", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass19, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (The Perfect Conqueror Of The Dance Soul West S)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass20, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Dance Soul 2011 West S Is The Most Powerful Version)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 2011, olds100ass21, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Magic Legend B1)(2011-05-16)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass22, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Soul 2011 West S Is The Most Powerful Version)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass23, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Dance Spirit West S)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass24, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Western S Super Plus)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass25, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (The Military Commander Mode Basically Has No Bug)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass26, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Boss Battle Perfect Edition Unlimited Items)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass27, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Magician Zhao Yun Fast Gas Storage Version)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass28, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Creamymami", "Oriental Legend Special (Enhanced Power)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass29, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "xuleilei111", "Oriental Legend Special (Free Special Move)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass32, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "QQ84381882", "Oriental Legend Special (Magic Legend B2 Repair)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass33, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Unblock 1)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass34, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Unblock 2)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass35, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Quick Whirlwind Version)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass36, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Dance Soul)(2013-09-06)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass37, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Can Collect Gas Magician To Fix The Hole Bug)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass38, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Volatility Simplifies Rapid Gas Gathering)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass39, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Simplification Of Fluctuations Without Gas Gathering)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass40, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Simplification Of Fluctuations Requires Gas Gathering)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass41, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Magic legend)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass42, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Military Commander Test Version)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass43, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Evil Feng Tian Chi Modified Version)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass44, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Group Of Monkeys)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass45, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (New Group Of Magical Dance 2011 Edition B1)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass46, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (New Group Of Magical Dance 2011 Edition B2)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass47, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Remix)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass48, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Heavenly Double Devil)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass49, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Xtahso", "Oriental Legend Special (Heavenly Double Devil Repair Enhanced Edition)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass50, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (The World's Unparalleled Bulls)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass51, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (The World's Latest Version)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass52, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Haunted Version)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass53, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (The Fluctuations Are Not Simple And Need To Collect Gas)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass54, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (The Fluctuation Is Not Simplified, No Gas Gathering Is Required.)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass55, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Fluctuation Is Not Simplified)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass56, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Xiyou Shie Chuan super Wu Chuan)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass57, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Unknown Version 2012)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass58, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Dragon Edition)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass59, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Xiyou Shuangxiong)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass60, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Clouds And Seas)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass61, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Cloud Sea Churning 2)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass62, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Magician Zhao Yun)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass63, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Chinese Group Of Magical Dance)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass64, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Journey To The Mirror)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass65, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Kof Combo Version)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass66, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Kof Westward Tour)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass67, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Dapeng King Test Second Edition)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass68, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "wydqzdh", "Oriental Legend Special (Kof Terry Version)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass69, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Sun Wukong Changed The Devil)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass70, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (No Props)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass71, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Walk Around)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass72, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Journey To The West Super Nightmare Survival 2015 Tour Edition)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass73, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Ghost Sword Tour)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass74, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Qitian Dasheng)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass75, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Various Restrictions Canceled)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass76, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Repair Invincible Creeps)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass77, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (System Stability + Instruction Simplification)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass78, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (West S Wukong Super Invincible Bug Edition)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass79, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (West S Goku Super Invincible + Longma Super Metamorphosis)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass80, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (West S Full Role Super Unlimited Enhanced Version)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass81, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (West S Full Role Super Unlimited Final Repair Version)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass82, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (All Characters Accelerate To Various Restrictions)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass83, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Sun Wukong Invincible Bomb Edition)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass84, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Western S's Violent Wukong Explosive Edition)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass85, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (West S's Goku Violence Whip Version)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass86, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Sun Wukong Violent Version)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass87, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Unknown Version)(Set 01)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass88, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Unknown Version)(Set 02)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass89, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Full Character Bloodsucking Acceleration)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass90, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Full Boss version)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass91, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Western S Super Edition)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass92, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (West S Heaven And Earth Double Magic Edition)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass93, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (West S Heavenly Double Devil Full Character Calling Enhanced Edition)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100s01, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Creamymami", "Oriental Legend Special (Enhanced power)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass01, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Xyahzhs", "Oriental Legend Special (West S-Fengyun Restarts B2)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass02, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Hundred Ghost Night)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass03, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Boss Battle Mode)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass04, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "QQ84381882", "Oriental Legend Special (Perfect Conqueror)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass05, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Enemy Wukong)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass06, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Enemy Wukong 2)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass07, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Super Perfect Big Magic And Small Magic)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass08, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Phoenix Dance Nine Days)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass09, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Phoenix Dance Nine Days Second Edition Revised Edition)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass10, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Change)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass11, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (The Original Moves Plus My Moves Additionally Strengthen Boss, Metamorphosis Level)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass12, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (West S Battered Dragon Version)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass13, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (West S Battered Zombie Version)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass14, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (West S Dragon's Version Of Blood Can Be Sent To The Ground)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass15, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (West S Dragon Edition Full Character Does Not Need Gas Gathering To Send All Moves)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass16, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (West S Dragon Reduction (No Energy Version Required))", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass17, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (West S Dragon Edition Joins The Call)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass18, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (S perfect Online Substitution [Calling Version])", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass19, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (The Perfect Conqueror Of The Dance Soul West S)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass20, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Dance Soul 2011 West S Is The Most Powerful Version)", MACHINE_SUPPORTS_SAVE )
+HACK( 2011, olds100ass21, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Magic Legend B1)(2011-05-16)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass22, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Soul 2011 West S Is The Most Powerful Version)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass23, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Dance Spirit West S)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass24, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Western S Super Plus)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass25, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (The Military Commander Mode Basically Has No Bug)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass26, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Boss Battle Perfect Edition Unlimited Items)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass27, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Magician Zhao Yun Fast Gas Storage Version)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass28, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Creamymami", "Oriental Legend Special (Enhanced Power)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass29, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "xuleilei111", "Oriental Legend Special (Free Special Move)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass32, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "QQ84381882", "Oriental Legend Special (Magic Legend B2 Repair)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass33, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Unblock 1)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass34, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Unblock 2)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass35, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Quick Whirlwind Version)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass36, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Dance Soul)(2013-09-06)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass37, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Can Collect Gas Magician To Fix The Hole Bug)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass38, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Volatility Simplifies Rapid Gas Gathering)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass39, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Simplification Of Fluctuations Without Gas Gathering)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass40, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Simplification Of Fluctuations Requires Gas Gathering)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass41, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Magic legend)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass42, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Military Commander Test Version)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass43, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Evil Feng Tian Chi Modified Version)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass44, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Group Of Monkeys)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass45, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (New Group Of Magical Dance 2011 Edition B1)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass46, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (New Group Of Magical Dance 2011 Edition B2)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass47, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Remix)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass48, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Heavenly Double Devil)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass49, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Xtahso", "Oriental Legend Special (Heavenly Double Devil Repair Enhanced Edition)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass50, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (The World's Unparalleled Bulls)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass51, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (The World's Latest Version)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass52, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Haunted Version)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass53, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (The Fluctuations Are Not Simple And Need To Collect Gas)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass54, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (The Fluctuation Is Not Simplified, No Gas Gathering Is Required.)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass55, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Fluctuation Is Not Simplified)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass56, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Xiyou Shie Chuan super Wu Chuan)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass57, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Unknown Version 2012)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass58, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Dragon Edition)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass59, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Xiyou Shuangxiong)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass60, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Clouds And Seas)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass61, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Cloud Sea Churning 2)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass62, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Magician Zhao Yun)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass63, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Chinese Group Of Magical Dance)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass64, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Journey To The Mirror)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass65, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Kof Combo Version)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass66, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Kof Westward Tour)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass67, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Dapeng King Test Second Edition)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass68, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "wydqzdh", "Oriental Legend Special (Kof Terry Version)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass69, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Sun Wukong Changed The Devil)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass70, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (No Props)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass71, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Walk Around)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass72, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Journey To The West Super Nightmare Survival 2015 Tour Edition)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass73, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Ghost Sword Tour)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass74, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Qitian Dasheng)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass75, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Various Restrictions Canceled)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass76, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Repair Invincible Creeps)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass77, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (System Stability + Instruction Simplification)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass78, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (West S Wukong Super Invincible Bug Edition)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass79, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (West S Goku Super Invincible + Longma Super Metamorphosis)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass80, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (West S Full Role Super Unlimited Enhanced Version)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass81, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (West S Full Role Super Unlimited Final Repair Version)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass82, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (All Characters Accelerate To Various Restrictions)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass83, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Sun Wukong Invincible Bomb Edition)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass84, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Western S's Violent Wukong Explosive Edition)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass85, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (West S's Goku Violence Whip Version)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass86, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Sun Wukong Violent Version)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass87, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Unknown Version)(Set 01)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass88, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Unknown Version)(Set 02)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass89, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Full Character Bloodsucking Acceleration)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass90, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Full Boss version)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass91, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Western S Super Edition)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass92, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (West S Heaven And Earth Double Magic Edition)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass93, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (West S Heavenly Double Devil Full Character Calling Enhanced Edition)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
HACK( 1998, olds100ass94, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (West S Five Elements Reversal Beta)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
HACK( 1998, olds100ass95, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (West S Heavenly Double Devil + Five Elements Reversal + Super Thang Long + Super Summon Edition)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
HACK( 1998, olds100ass96, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (West S Heavenly Double Devil + Five Elements Reversal + Super Thang Long + Super Summon Edition V2)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass97, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (The Horror Version Of West S)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass98, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Unlimited Energy And Speed For All)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass99, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Dance Spirit Perfectly Modified)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass100,olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (West S Super Hell Edition)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass101,olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Kof Westward B2 Repair Most)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass102,olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Latest Advanced Edition)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass97, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (The Horror Version Of West S)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass98, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Unlimited Energy And Speed For All)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass99, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Dance Spirit Perfectly Modified)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass100,olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (West S Super Hell Edition)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass101,olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Kof Westward B2 Repair Most)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass102,olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Latest Advanced Edition)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
HACK( 1998, olds100ass103,olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (2009 National Day Release Version)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
HACK( 1998, olds100ass104,olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (2009 National Day Remix Edition)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
HACK( 1998, olds100ass105,olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (West S Remix Final Edition + Unlimited combo + no gas cow B version)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
@@ -31487,9 +31663,9 @@ HACK( 1998, olds100ass109,olds, pgm_028_025_ol, olds, pgm_028_025_s
HACK( 1998, olds100ass110,olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Western S's Super Hit Kill Normal Version Of The Updated Metamorphosis)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
HACK( 1998, olds100ass111,olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (West S Private Collector's Edition)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
HACK( 1998, olds100ass112,olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (SP Remix Creeps Slow Down Version)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass113,olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Original Gorgeous Version)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass114,olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Original Gorgeous Moves Canceled The Combo Version)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
-HACK( 1998, olds100ass115,olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (The Original Gorgeous Moves Increase One Button Energy Full)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass113,olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Original Gorgeous Version)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass114,olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Original Gorgeous Moves Canceled The Combo Version)", MACHINE_SUPPORTS_SAVE )
+HACK( 1998, olds100ass115,olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (The Original Gorgeous Moves Increase One Button Energy Full)", MACHINE_SUPPORTS_SAVE )
HACK( 1998, olds100ass116,olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Treasures Reduce The Boss Weakening Version Of SP Remix)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
HACK( 2010, olds100ass117,olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (Treasures Reduce SP Remix Boss Weakened Version Without Energy Crazy Version)(2010-08-24)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
HACK( 1998, olds100ass118,olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "Unknown", "Oriental Legend Special (SP Remix Treasure Reduction + Remove Enemy Invincible + Characters Free To Move Around)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/polepos.cpp b/docs/release/src/hbmame/drivers/polepos.cpp
index 5f21cdcfe57..8f850c541a9 100644
--- a/docs/release/src/hbmame/drivers/polepos.cpp
+++ b/docs/release/src/hbmame/drivers/polepos.cpp
@@ -70,5 +70,5 @@ ROM_START( mmadness )
ROM_LOAD( "7052-4.c14", 0x0000, 0x0100, CRC(0e742cb1) SHA1(3ae43270aab4848fdeece1648e7e040ab216b08e) )
ROM_END
-GAME( 2018, mmadness, polepos, polepos, polepos, polepos_state, empty_init, ROT0, "Telsa", "Mars Madness", 0 )
+GAME( 2018, mmadness, polepos, polepos, polepos, polepos_state, empty_init, ROT0, "Tesla", "Mars Madness", 0 )
diff --git a/docs/release/src/hbmame/drivers/warriorb.cpp b/docs/release/src/hbmame/drivers/warriorb.cpp
new file mode 100644
index 00000000000..a0501264564
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/warriorb.cpp
@@ -0,0 +1,45 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/warriorb.cpp"
+
+// This set came from something called "Darius Cozmic Collection"
+ROM_START( sagaiav2 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "c07_44v2.74", 0x00000, 0x20000, CRC(62e0c736) SHA1(86973c4260143e9f1d0d03605487607c6d0c569f) )
+ ROM_LOAD16_BYTE( "c07_43v2.73", 0x00001, 0x20000, CRC(1c59400b) SHA1(6ce3e9c13706b6b96cfeb772d4bfab5622d9d628) )
+ ROM_LOAD16_BYTE( "c07_45v2.76", 0x40000, 0x20000, CRC(4fbc9e5f) SHA1(4e6ec0cf448397f32854e73d54aa63afebe6893a) )
+ ROM_LOAD16_BYTE( "c07_42v2.71", 0x40001, 0x20000, CRC(6c092f03) SHA1(b33b607d1a9f7494e680f834a7290925a9db8d33) )
+
+ ROM_LOAD16_WORD_SWAP( "c07-09.75", 0x80000, 0x80000, CRC(cc69c2ce) SHA1(47883b9e14d8b6dd74db221bff396477231938f2) )
+
+ ROM_REGION( 0x20000, "audiocpu", 0 )
+ ROM_LOAD( "c07_41.69", 0x00000, 0x20000, CRC(b50256ea) SHA1(6ed271e4dafd1c759adaa55d5b2343d7374c721a) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD64_WORD( "c07-05.24", 0x00000, 0x80000, CRC(fb6d0550) SHA1(2d570ff5ef262cb4cb52e8584a7f167263194d37) )
+ ROM_LOAD64_WORD( "c07-06.27", 0x00002, 0x80000, CRC(5eebbcd6) SHA1(d4d860bf6b099956c45c7273ad77b1d35deba4c1) )
+ ROM_LOAD64_WORD( "c07-07.26", 0x00004, 0x80000, CRC(fd9f9e74) SHA1(e89beb5cac844fe16662465b0c76337692591aae) )
+ ROM_LOAD64_WORD( "c07-08.25", 0x00006, 0x80000, CRC(a07dc846) SHA1(7199a604fcd693215ddb7670bfb2daf150145fd7) )
+
+ ROM_REGION( 0x100000, "tc0100scn_1", 0 )
+ ROM_LOAD16_WORD_SWAP( "c07-03.12", 0x00000, 0x80000, CRC(189bafce) SHA1(d885e444523489fe24269b90dec58e0d92cfbd6e) )
+ ROM_LOAD16_WORD_SWAP( "c07-04.11", 0x80000, 0x80000, CRC(50421e81) SHA1(27ac420602f1dac00dc32903543a518e6f47fb2f) )
+
+ ROM_REGION( 0x100000, "tc0100scn_2", 0 )
+ ROM_LOAD16_WORD_SWAP( "c07-03.47", 0x00000, 0x80000, CRC(189bafce) SHA1(d885e444523489fe24269b90dec58e0d92cfbd6e) )
+ ROM_LOAD16_WORD_SWAP( "c07-04.48", 0x80000, 0x80000, CRC(50421e81) SHA1(27ac420602f1dac00dc32903543a518e6f47fb2f) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "c07-10.95", 0x00000, 0x80000, CRC(4bbe0ed9) SHA1(081b73c4e4d4fa548445e5548573099bcb1e9213) )
+ ROM_LOAD( "c07-11.96", 0x80000, 0x80000, CRC(3c815699) SHA1(0471ff5b0c0da905267f2cee52fd68c8661cccc9) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "c07-12.107", 0x00000, 0x80000, CRC(e0b71258) SHA1(0258e308b643d723475824752ebffc4ea29d1ac4) )
+
+ ROM_REGION( 0x001000, "user1", 0 )
+ ROM_LOAD( "c07-13.37", 0x00000, 0x00400, CRC(3ca18eb3) SHA1(54560f02c2be67993940831222130e90cd171991) )
+ ROM_LOAD( "c07-14.38", 0x00000, 0x00400, CRC(baf2a193) SHA1(b7f103b5f5aab0702dd21fd7e3a82261ae1760e9) )
+ROM_END
+
+GAME( 2018, sagaiav2, 0, darius2d, sagaia, warriorb_state, empty_init, ROT0, "Taito Corporation Japan", "Sagaia (dual screen) (V2)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
+
diff --git a/docs/release/src/hbmame/hbmame.lst b/docs/release/src/hbmame/hbmame.lst
index 727dd2eb38c..f974a39ceb8 100644
--- a/docs/release/src/hbmame/hbmame.lst
+++ b/docs/release/src/hbmame/hbmame.lst
@@ -183,16 +183,20 @@ centipb /* bootleg of centipdb */
magworm2 /* bootleg of magworm */
@source:cinemat.cpp
-bbugtest /* Test Rom */
+bbugtest /* Test Rom */
+bbugtest1
+warrior //parent
+warrior4j1
+warrior4j2
@source:cninja.cpp
mutantf //parent
deathbrdh01
@source:commando.cpp
-commando //parent
-comdelux /* Twisty Hack */
-comdlux1 /* Twisty Hack */
+commando //parent
+comdelux /* Twisty Hack */
+comdlux1 /* Twisty Hack */
@source:contra.cpp
contra //parent
@@ -517,6 +521,11 @@ tk2h136
tk2h137
tk2h138
tk2h139
+tk2h140
+tk2h141
+tk2h142
+tk2h143
+tk2h144
wofb
wofch // tk2p1
woffr
@@ -582,6 +591,10 @@ captcomms57
captcomms58
captcomms59
captcomms60
+captcomms61
+captcomms62
+captcomms63
+captcomms64
dinos01
dinos02
dinos03
@@ -758,6 +771,14 @@ dinos190
dinos191
dinos192
dinos193
+dinos194
+dinos195
+dinos196
+dinos197
+dinos198
+dinos199
+dinos200
+dinos201
ffights01
ffights02
ffightj2s01
@@ -1129,6 +1150,7 @@ sfz2aljs05
sfz2aljs06
sfz2aljs07
sfz2aljs08
+sfz2ns01
sfz3js01
sfz3js02
sfz3js03
@@ -1873,6 +1895,7 @@ kof97s142
kof97s143
kof97s144
kof97s145
+kof97s146
kof97hx01
kof97hx02
kof97hx03
@@ -2488,6 +2511,9 @@ kof98hh116
kof98hh117
kof98hh118
kof98hh119
+kof98hh120
+kof98hh121
+kof98hh122
kof98xz01
kof98xz02
kof98xz03
@@ -3373,6 +3399,7 @@ kof2k2s79
kof2k2s80
kof2k2s81
kof2k2s82
+kof2k2s83
@source:kof2003.cpp
kof2003d
@@ -3537,6 +3564,7 @@ spatrol /* Sponge Patrol - Gatinho 2008 */
@source:m92.cpp
hook //parent
nbbatman //parent
+uccops //parent
hooks01
hooks02
hooks03
@@ -3553,6 +3581,7 @@ nbbatmanus02
nbbatmanus03
nbbatmanus04
nbbatmanus05
+uccopsjs01
@source:maketrax.cpp
eyes //parent
@@ -3659,31 +3688,34 @@ wh1d /* 0053 (c) 1992 Alpha Denshi Co. */
mhavoc //parent
mhavocrv //HB Jess M. Askey
mhavocpex //HB Jess M. Askey
+mhavocpex2 //HB Jess M. Askey
@source:midtunit.cpp
-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
-mk2p // Mortal Kombat II Plus beta
-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
+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
+mk2p // Mortal Kombat II Plus beta
+mk2fr // french
+mk2r33 // Mortal Kombat II r3.3
+mk2v28b1 // Mortal Kombat II v2.8 beta 1
+nbajamte //parent
+nbajamtexxx
+umk2te50 // Ultimate MKII Tournament Edition r5.0.050
+umk2te51 // Ultimate MKII Tournament Edition r5.0.051
+umk2te52 // Ultimate MKII Tournament Edition r5.0.052
mks01
@source:midwunit.cpp
-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 */
-umk3te42 /* UMK3 Tournament Edition 2.0.042 */
-umk3z /* UMK3 1.2 Zeus hack */
+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 */
+umk3te42 /* UMK3 Tournament Edition 2.0.042 */
+umk3z /* UMK3 1.2 Zeus hack */
umk3ze
umk3r13b101
umk3r13b1213
@@ -3694,32 +3726,32 @@ umk3uc2
umk3tm
@source:midyunit.cpp
-mkla4d /* MK protection hack */
+mkla4d /* MK protection hack */
@source:missile.cpp
missile //parent
missilet // Tesla variant
@source:mitchell.cpp
-mitcdemo /* Charles Doty */
-pang //parent
+mitcdemo /* Charles Doty */
+pang //parent
pangbolds01
@source:model2.cpp
-srallyc //parent
-srallyp // Kyle Hodgetts Sega Rally Pro Drivin'
+srallyc //parent
+srallyp // Kyle Hodgetts Sega Rally Pro Drivin'
@source:monaco.cpp
monaco
@source:mrdo.cpp
-mrdo //parent
-mrdigdo /* Justin Clark hack of Mr. Do! */
-mrdofast /* Speedup hack from Evil Exidy*/
-mrpac /* Twist Hack 20020813 */
+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 */
+newdigdo /* Vic 20 George and Jerky hack of... */
+stickydo /* Marck's Hacks */
@source:mslug.cpp
msboot
@@ -4413,6 +4445,7 @@ mslug4hh43
mslug4hh44
mslug4hh45
mslug4hh46
+mslug4hh47
mslug4erms01
mslug4erms02
mslug4erms03
@@ -5683,6 +5716,7 @@ zupapa // 070
akiradmo
beast /* 2002 (c) 1989 Psygnosis */
cndi /* Chip n Dale Intro */
+cndia
cnbe
cnbe2018
cphd
@@ -5693,7 +5727,7 @@ ddsprdmo
ddsprdmo1
didemo
dti // Duck Tales Intro
-dti2 // Duck Tales Intro
+dtia // Duck Tales Intro
dwi /* DarkWing Duck Intro */
dwia
ffeast // Frog Feast
@@ -6124,6 +6158,7 @@ kf2k5unis10
kf2k5unis11
kf2k5unis12
kf2k5unis13
+kf2k5unis14
kof2k4ses01
kof2k4ses04
kof2k4ses05
@@ -6846,7 +6881,7 @@ ketarrs151 // trap15 hack
orlegend //parent
orlegendcs
// orlegendh // it is duplicated roms orlegendcs
-//olds100a //parent (crashes)
+olds100a //parent (crashes)
kovassg
//kovdf // rom missing
kovsgqyzc // similar to kovsgqyza
@@ -7379,6 +7414,7 @@ kovpluss344
kovpluss345
kovpluss346
kovpluss347
+kovpluss348
kovplusas01
kovshs01
kovshs02
@@ -7613,106 +7649,106 @@ kovshxass03
martmasts01
olds103ts01
olds100s01
-//olds100ass01 // Unstable game in the emulator (ingame crash)
-//olds100ass02 // Unstable game in the emulator (ingame crash)
-//olds100ass03 // Unstable game in the emulator (ingame crash)
-//olds100ass04 // Unstable game in the emulator (ingame crash)
-//olds100ass05 // Unstable game in the emulator (ingame crash)
-//olds100ass06 // Unstable game in the emulator (ingame crash)
-//olds100ass07 // Unstable game in the emulator (ingame crash)
-//olds100ass08 // Unstable game in the emulator (ingame crash)
-//olds100ass09 // Unstable game in the emulator (ingame crash)
-//olds100ass10 // Unstable game in the emulator (ingame crash)
-//olds100ass11 // Unstable game in the emulator (ingame crash)
-//olds100ass12 // Unstable game in the emulator (ingame crash)
-//olds100ass13 // Unstable game in the emulator (ingame crash)
-//olds100ass14 // Unstable game in the emulator (ingame crash)
-//olds100ass15 // Unstable game in the emulator (ingame crash)
-//olds100ass16 // Unstable game in the emulator (ingame crash)
-//olds100ass17 // Unstable game in the emulator (ingame crash)
-//olds100ass18 // Unstable game in the emulator (ingame crash)
-//olds100ass19 // Unstable game in the emulator (ingame crash)
-//olds100ass20 // Unstable game in the emulator (ingame crash)
-//olds100ass21 // Unstable game in the emulator (ingame crash)
-//olds100ass22 // Unstable game in the emulator (ingame crash)
-//olds100ass23 // Unstable game in the emulator (ingame crash)
-//olds100ass24 // Unstable game in the emulator (ingame crash)
-//olds100ass25 // Unstable game in the emulator (ingame crash)
-//olds100ass26 // Unstable game in the emulator (ingame crash)
-//olds100ass27 // Unstable game in the emulator (ingame crash)
-//olds100ass28 // Unstable game in the emulator (ingame crash)
-//olds100ass29 // Unstable game in the emulator (ingame crash)
-//olds100ass32 // Unstable game in the emulator (ingame crash)
-//olds100ass33 // Unstable game in the emulator (ingame crash)
-//olds100ass34 // Unstable game in the emulator (ingame crash)
-//olds100ass35 // Unstable game in the emulator (ingame crash)
-//olds100ass36 // Unstable game in the emulator (ingame crash)
-//olds100ass37 // Unstable game in the emulator (ingame crash)
-//olds100ass38 // Unstable game in the emulator (ingame crash)
-//olds100ass39 // Unstable game in the emulator (ingame crash)
-//olds100ass40 // Unstable game in the emulator (ingame crash)
-//olds100ass41 // Unstable game in the emulator (ingame crash)
-//olds100ass42 // Unstable game in the emulator (ingame crash)
-//olds100ass43 // Unstable game in the emulator (ingame crash)
-//olds100ass44 // Unstable game in the emulator (ingame crash)
-//olds100ass45 // Unstable game in the emulator (ingame crash)
-//olds100ass46 // Unstable game in the emulator (ingame crash)
-//olds100ass47 // Unstable game in the emulator (ingame crash)
-//olds100ass48 // Unstable game in the emulator (ingame crash)
-//olds100ass49 // Unstable game in the emulator (ingame crash)
-//olds100ass50 // Unstable game in the emulator (ingame crash)
-//olds100ass51 // Unstable game in the emulator (ingame crash)
-//olds100ass52 // Unstable game in the emulator (ingame crash)
-//olds100ass53 // Unstable game in the emulator (ingame crash)
-//olds100ass54 // Unstable game in the emulator (ingame crash)
-//olds100ass55 // Unstable game in the emulator (ingame crash)
-//olds100ass56 // Unstable game in the emulator (ingame crash)
-//olds100ass57 // Unstable game in the emulator (ingame crash)
-//olds100ass58 // Unstable game in the emulator (ingame crash)
-//olds100ass59 // Unstable game in the emulator (ingame crash)
-//olds100ass60 // Unstable game in the emulator (ingame crash)
-//olds100ass61 // Unstable game in the emulator (ingame crash)
-//olds100ass62 // Unstable game in the emulator (ingame crash)
-//olds100ass63 // Unstable game in the emulator (ingame crash)
-//olds100ass64 // Unstable game in the emulator (ingame crash)
-//olds100ass65 // Unstable game in the emulator (ingame crash)
-//olds100ass66 // Unstable game in the emulator (ingame crash)
-//olds100ass67 // Unstable game in the emulator (ingame crash)
-//olds100ass68 // Unstable game in the emulator (ingame crash)
-//olds100ass69 // Unstable game in the emulator (ingame crash)
-//olds100ass70 // Unstable game in the emulator (ingame crash)
-//olds100ass71 // Unstable game in the emulator (ingame crash)
-//olds100ass72 // Unstable game in the emulator (ingame crash)
-//olds100ass73 // Unstable game in the emulator (ingame crash)
-//olds100ass74 // Unstable game in the emulator (ingame crash)
-//olds100ass75 // Unstable game in the emulator (ingame crash)
-//olds100ass76 // Unstable game in the emulator (ingame crash)
-//olds100ass77 // Unstable game in the emulator (ingame crash)
-//olds100ass78 // Unstable game in the emulator (ingame crash)
-//olds100ass79 // Unstable game in the emulator (ingame crash)
-//olds100ass80 // Unstable game in the emulator (ingame crash)
-//olds100ass81 // Unstable game in the emulator (ingame crash)
-//olds100ass82 // Unstable game in the emulator (ingame crash)
-//olds100ass83 // Unstable game in the emulator (ingame crash)
-//olds100ass84 // Unstable game in the emulator (ingame crash)
-//olds100ass85 // Unstable game in the emulator (ingame crash)
-//olds100ass86 // Unstable game in the emulator (ingame crash)
-//olds100ass87 // Unstable game in the emulator (ingame crash)
-//olds100ass88 // Unstable game in the emulator (ingame crash)
-//olds100ass89 // Unstable game in the emulator (ingame crash)
-//olds100ass90 // Unstable game in the emulator (ingame crash)
-//olds100ass91 // Unstable game in the emulator (ingame crash)
-//olds100ass92 // Unstable game in the emulator (ingame crash)
-//olds100ass93 // Unstable game in the emulator (ingame crash)
-//olds100ass94 // Unstable game in the emulator (ingame crash)
-//olds100ass95 // Unstable game in the emulator (ingame crash)
-//olds100ass96 // Unstable game in the emulator (ingame crash)
-//olds100ass97 // Unstable game in the emulator (ingame crash)
-//olds100ass98 // Unstable game in the emulator (ingame crash)
-//olds100ass99 // Unstable game in the emulator (ingame crash)
-//olds100ass100 // Unstable game in the emulator (ingame crash)
-//olds100ass101 // Unstable game in the emulator (ingame crash)
-//olds100ass102 // Unstable game in the emulator (ingame crash)
+//olds100ass01
+//olds100ass02 // Resource error
+//olds100ass03
+//olds100ass04
+//olds100ass05
+//olds100ass06
+//olds100ass07
+//olds100ass08
+//olds100ass09
+//olds100ass10
+//olds100ass11
+//olds100ass12
+//olds100ass13
+//olds100ass14
+//olds100ass15
+//olds100ass16
+//olds100ass17
+//olds100ass18
+//olds100ass19
+//olds100ass20
+//olds100ass21 // Unstable game
+//olds100ass22
+//olds100ass23
+//olds100ass24
+//olds100ass25
+//olds100ass26
+//olds100ass27
+//olds100ass28
+//olds100ass29 // rom problem
+//olds100ass32
+//olds100ass33
+//olds100ass34
+//olds100ass35
+//olds100ass36
+//olds100ass37 // bad gfx
+//olds100ass38
+//olds100ass39
+//olds100ass40
+//olds100ass41
+//olds100ass42
+//olds100ass43
+//olds100ass44
+//olds100ass45
+//olds100ass46 // Resource error
+//olds100ass47
+//olds100ass48 // bad gfx
+//olds100ass49 // bad gfx
+//olds100ass50
+//olds100ass51
+//olds100ass52
+//olds100ass53
+//olds100ass54
+//olds100ass55
+//olds100ass56
+//olds100ass57
+//olds100ass58
+//olds100ass59
+//olds100ass60
+//olds100ass61
+//olds100ass62
+//olds100ass63
+//olds100ass64
+//olds100ass65
+//olds100ass66
+//olds100ass67 // bad gfx
+//olds100ass68
+//olds100ass69
+//olds100ass70
+//olds100ass71
+//olds100ass72
+//olds100ass73
+//olds100ass74
+//olds100ass75
+//olds100ass76
+//olds100ass77
+//olds100ass78
+//olds100ass79
+//olds100ass80
+//olds100ass81
+//olds100ass82
+//olds100ass83
+//olds100ass84
+//olds100ass85
+//olds100ass86
+//olds100ass87
+//olds100ass88
+//olds100ass89
+//olds100ass90 // bad gfx
+//olds100ass91
+//olds100ass92 // bad gfx
+//olds100ass93 // bad gfx
+//olds100ass94 // resource error
+//olds100ass95 // resource error
+//olds100ass96 // resource error
+//olds100ass97 // bad gfx
+//olds100ass98 // bad gfx
+//olds100ass99 // bad gfx
+//olds100ass100 // bad gfx
+//olds100ass101
+//olds100ass102 // bad gfx
//olds100ass103 // Unstable game in the emulator (ingame crash)
//olds100ass104 // Unstable game in the emulator (ingame crash)
//olds100ass105 // Unstable game in the emulator (ingame crash)
@@ -7723,42 +7759,42 @@ olds100s01
//olds100ass110 // Unstable game in the emulator (ingame crash)
//olds100ass111 // Unstable game in the emulator (ingame crash)
//olds100ass112 // Unstable game in the emulator (ingame crash)
-//olds100ass113 // Unstable game in the emulator (ingame crash)
-//olds100ass114 // Unstable game in the emulator (ingame crash)
-//olds100ass115 // Unstable game in the emulator (ingame crash)
+//olds100ass113
+//olds100ass114
+//olds100ass115
//olds100ass116 // Unstable game in the emulator (ingame crash)
//olds100ass117 // Unstable game in the emulator (ingame crash)
//olds100ass118 // Unstable game in the emulator (ingame crash)
//olds100ass119 // Unstable game in the emulator (ingame crash)
-//olds100ass120 // Unstable game in the emulator (ingame crash)
-//olds100ass121 // Unstable game in the emulator (ingame crash)
-//olds100ass122 // Unstable game in the emulator (ingame crash)
-//olds100ass123 // Unstable game in the emulator (ingame crash)
-//olds100ass124 // Unstable game in the emulator (ingame crash)
-//olds100ass125 // Unstable game in the emulator (ingame crash)
-//olds100ass126 // Unstable game in the emulator (ingame crash)
-//olds100ass127 // Unstable game in the emulator (ingame crash)
-//olds100ass128 // Unstable game in the emulator (ingame crash)
-//olds100ass129 // Unstable game in the emulator (ingame crash)
-//olds100ass130 // Unstable game in the emulator (ingame crash)
-//olds100ass131 // Unstable game in the emulator (ingame crash)
-//olds100ass132 // Unstable game in the emulator (ingame crash)
-//olds100ass133 // Unstable game in the emulator (ingame crash)
-//olds100ass134 // Unstable game in the emulator (ingame crash)
-//olds100ass135 // Unstable game in the emulator (ingame crash)
-//olds100ass136 // Unstable game in the emulator (ingame crash)
-//olds100ass137 // Unstable game in the emulator (ingame crash)
-//olds100ass138 // Unstable game in the emulator (ingame crash)
-//olds100ass139 // Unstable game in the emulator (ingame crash)
-//olds100ass140 // Unstable game in the emulator (ingame crash)
-//olds100ass141 // Unstable game in the emulator (ingame crash)
-//olds100ass142 // Unstable game in the emulator (ingame crash)
-//olds100ass143 // Unstable game in the emulator (ingame crash)
-//olds100ass144 // Unstable game in the emulator (ingame crash)
-//olds100ass145 // Unstable game in the emulator (ingame crash)
-//olds100ass146 // Unstable game in the emulator (ingame crash)
-//olds100ass147 // Unstable game in the emulator (ingame crash)
-//olds100ass148 // Unstable game in the emulator (ingame crash)
+//olds100ass120 // roms missing
+//olds100ass121 // roms missing
+//olds100ass122 // roms missing
+//olds100ass123 // roms missing
+//olds100ass124 // roms missing
+//olds100ass125 // roms missing
+//olds100ass126 // roms missing
+//olds100ass127 // roms missing
+//olds100ass128 // roms missing
+//olds100ass129 // roms missing
+//olds100ass130 // roms missing
+//olds100ass131 // roms missing
+//olds100ass132 // roms missing
+//olds100ass133 // roms missing
+//olds100ass134 // roms missing
+//olds100ass135 // roms missing
+//olds100ass136 // roms missing
+//olds100ass137 // roms missing
+//olds100ass138 // roms missing
+//olds100ass139 // roms missing
+//olds100ass140 // roms missing
+//olds100ass141 // roms missing
+//olds100ass142 // roms missing
+//olds100ass143 // roms missing
+//olds100ass144 // roms missing
+//olds100ass145 // roms missing
+//olds100ass146 // roms missing
+//olds100ass147 // roms missing
+//olds100ass148 // roms missing
oldsplus01
oldsplus02
oldsplus03
@@ -8311,6 +8347,9 @@ karatblz //parent
karatblzas01
karatblzas02
+@source:warriorb.cpp
+sagaiav2
+
@source:wc90.cpp
pac90
twcup90 //parent
@@ -8354,4 +8393,3 @@ sfex2ps01
sfexp //parent
sfexps01
-
diff --git a/docs/release/src/hbmame/includes/cps1.h b/docs/release/src/hbmame/includes/cps1.h
index 1487b6636b0..2adecd40037 100644
--- a/docs/release/src/hbmame/includes/cps1.h
+++ b/docs/release/src/hbmame/includes/cps1.h
@@ -16,6 +16,7 @@
#include "machine/timekpr.h"
#include "machine/timer.h"
#include "cpu/m68000/m68000.h"
+#include "tilemap.h"
#include "emupal.h"
#include "screen.h"
diff --git a/docs/release/src/hbmame/includes/cps2.h b/docs/release/src/hbmame/includes/cps2.h
index 13b98c1ca41..5a3ac99a0b8 100644
--- a/docs/release/src/hbmame/includes/cps2.h
+++ b/docs/release/src/hbmame/includes/cps2.h
@@ -17,6 +17,7 @@
#include "machine/timekpr.h"
#include "machine/timer.h"
#include "cpu/m68000/m68000.h"
+#include "tilemap.h"
#include "emupal.h"
#include "screen.h"
diff --git a/docs/release/src/hbmame/includes/pacman.h b/docs/release/src/hbmame/includes/pacman.h
index 8dbf019575e..93da38df460 100644
--- a/docs/release/src/hbmame/includes/pacman.h
+++ b/docs/release/src/hbmame/includes/pacman.h
@@ -8,6 +8,7 @@
#include "machine/74259.h"
#include "machine/watchdog.h"
#include "sound/namco.h"
+#include "tilemap.h"
#include "emupal.h"
/*************************************************************************
diff --git a/docs/release/src/mame/video/decbac06.cpp b/docs/release/src/mame/video/decbac06.cpp
index ad1ab7a7ab6..778ddcfc853 100644
--- a/docs/release/src/mame/video/decbac06.cpp
+++ b/docs/release/src/mame/video/decbac06.cpp
@@ -15,6 +15,7 @@
madmotor.cpp
stadhero.cpp
pcktgal.cpp
+ thedeep.cpp
Notes (from dec0.cpp)
@@ -94,6 +95,7 @@ deco_bac06_device::deco_bac06_device(const machine_config &mconfig, const char *
, m_bppmult_16x16(0)
, m_bppmask_16x16(0)
, m_gfxdecode(*this, finder_base::DUMMY_TAG)
+ , m_thedeep_kludge(0)
{
std::fill(std::begin(m_pf_control_0), std::end(m_pf_control_0), 0);
std::fill(std::begin(m_pf_control_1), std::end(m_pf_control_1), 0);
@@ -304,7 +306,7 @@ void deco_bac06_device::custom_tilemap_draw(bitmap_ind16 &bitmap,
Nb2: Real hardware exhibits a strange bug with column scroll on 'mode 2'
(256*1024) - the first column has a strange additional offset, but
curiously the first 'wrap' (at scroll offset 256) does not have this offset,
- it is displayed as expected. The bug is confimed to only affect this mode,
+ it is displayed as expected. The bug is confirmed to only affect this mode,
the other two modes work as expected. This bug is not emulated, as it
doesn't affect any games.
*/
@@ -603,6 +605,22 @@ void deco_bac06_device::pf_rowscroll_8bit_swap_w(offs_t offset, u8 data)
pf_rowscroll_w(offset / 2, data, 0x00ff);
}
+// used by thedeep
+u8 deco_bac06_device::pf_colscroll_8bit_swap_r(offs_t offset)
+{
+ if (offset & 1)
+ return pf_colscroll_r(offset / 2)>>8;
+ else
+ return pf_colscroll_r(offset / 2);
+}
+
+void deco_bac06_device::pf_colscroll_8bit_swap_w(offs_t offset, u8 data)
+{
+ if (offset & 1)
+ pf_colscroll_w(offset / 2, data << 8, 0xff00);
+ else
+ pf_colscroll_w(offset / 2, data, 0x00ff);
+}
/* used by hippodrm */
void deco_bac06_device::pf_control0_8bit_packed_w(offs_t offset, u8 data)
diff --git a/docs/release/src/mame/video/midtunit.cpp b/docs/release/src/mame/video/midtunit.cpp
new file mode 100644
index 00000000000..10e0d6a7ca5
--- /dev/null
+++ b/docs/release/src/mame/video/midtunit.cpp
@@ -0,0 +1,1092 @@
+// license:BSD-3-Clause
+// copyright-holders:Alex Pasadyn, Zsolt Vasvari, Ernesto Corvi, Aaron Giles
+// thanks-to:Kurt Mahan
+/*************************************************************************
+
+ Video Emulation for Midway T-unit, W-unit, and X-unit games.
+
+**************************************************************************/
+
+#include "emu.h"
+#include "midtunit.h"
+#include "midtunit.ipp"
+#include "screen.h"
+#include "midtview.ipp"
+
+#include "debug/debugcon.h"
+#include "debug/debugcmd.h"
+#include "debugger.h"
+
+#include "emuopts.h" // Used by PNG logging
+#include "png.h" // Used by PNG logging
+
+//#include <rapidjson/prettywriter.h> // Used by JSON logging
+//#include <rapidjson/stringbuffer.h> // Used by JSON logging
+
+DEFINE_DEVICE_TYPE(MIDTUNIT_VIDEO, midtunit_video_device, "tunitvid", "Midway T-Unit Video")
+DEFINE_DEVICE_TYPE(MIDWUNIT_VIDEO, midwunit_video_device, "wunitvid", "Midway W-Unit Video")
+DEFINE_DEVICE_TYPE(MIDXUNIT_VIDEO, midxunit_video_device, "xunitvid", "Midway X-Unit Video")
+
+/* compile-time options */
+#define LOG_DMA 0 /* DMAs are logged if the 'L' key is pressed */
+
+midtunit_video_device::midtunit_video_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, type, tag, owner, clock)
+ , m_maincpu(*this, finder_base::DUMMY_TAG)
+ , m_palette(*this, finder_base::DUMMY_TAG)
+ , m_gfxrom(*this, finder_base::DUMMY_TAG)
+#if DEBUG_MIDTUNIT_BLITTER
+ , m_debug_palette(*this, "debugpalette")
+#endif
+{
+}
+
+midtunit_video_device::midtunit_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : midtunit_video_device(mconfig, MIDTUNIT_VIDEO, tag, owner, clock)
+{
+}
+
+midwunit_video_device::midwunit_video_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock)
+ : midtunit_video_device(mconfig, type, tag, owner, clock)
+{
+}
+
+midwunit_video_device::midwunit_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : midtunit_video_device(mconfig, MIDWUNIT_VIDEO, tag, owner, clock)
+{
+}
+
+midxunit_video_device::midxunit_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : midwunit_video_device(mconfig, MIDXUNIT_VIDEO, tag, owner, clock)
+{
+}
+
+/*************************************
+ *
+ * Debugger commands
+ *
+ *************************************/
+
+void midtunit_video_device::debug_init()
+{
+ if (machine().debug_flags & DEBUG_FLAG_ENABLED)
+ {
+ using namespace std::placeholders;
+ machine().debugger().console().register_command("midblit", CMDFLAG_CUSTOM_HELP, 0, 1, 4, std::bind(&midtunit_video_device::debug_commands, this, _1, _2));
+ }
+}
+
+void midtunit_video_device::debug_commands(int ref, const std::vector<std::string> &params)
+{
+ if (params.size() < 1)
+ return;
+
+ if (params[0] == "pngdma")
+ debug_png_dma_command(ref, params);
+ else
+ debug_help_command(ref, params);
+}
+
+void midtunit_video_device::debug_help_command(int ref, const std::vector<std::string> &params)
+{
+ debugger_console &con = machine().debugger().console();
+
+ con.printf("Available Midway Blitter commands:\n");
+ con.printf(" midblit pngdma,<enable>[,<path>][,<logjson>] -- Enable or disable dumping of DMA-drawn sprite PNGs to <path>, with or without JSON metadata\n");
+ con.printf(" midblit help -- this list\n");
+}
+
+void midtunit_video_device::debug_png_dma_command(int ref, const std::vector<std::string> &params)
+{
+ debugger_console &con = machine().debugger().console();
+
+ if (params.size() < 2)
+ {
+ con.printf("Error: not enough parameters for midblit pngdma command\n");
+ return;
+ }
+
+ if (params.size() > 4)
+ {
+ con.printf("Error: too many parameters for midblit pngdma command\n");
+ return;
+ }
+
+ bool old_state = m_log_png;
+ bool new_state = false;
+ if (!machine().debugger().commands().validate_boolean_parameter(params[1], new_state))
+ return;
+
+ if (!new_state)
+ {
+ if (params.size() > 2)
+ {
+ con.printf("Error: too many parameters for midblit pngdma command\n");
+ return;
+ }
+ m_log_png = false;
+ return;
+ }
+
+ if (params.size() < 3)
+ {
+ con.printf("Error: not enough parameters for midblit pngdma command\n");
+ return;
+ }
+
+ if (params[2].empty() || params[2].length() > 2047)
+ {
+ con.printf("Error: invalid path parameter for midblit pngdma command\n");
+ return;
+ }
+
+ strncpy(m_log_path, params[2].c_str(), 2047);
+
+ if (params.size() == 4)
+ {
+ if (!machine().debugger().commands().validate_boolean_parameter(params[3], m_log_json))
+ return;
+ }
+
+ m_log_png = new_state;
+
+ if (!old_state && new_state)
+ {
+ m_logged_rom = make_unique_clear<uint64_t[]>(0x4000000);
+ }
+ else if (old_state && !new_state)
+ {
+ m_logged_rom.reset();
+ }
+}
+
+
+/*************************************
+ *
+ * Video startup
+ *
+ *************************************/
+
+void midtunit_video_device::device_start()
+{
+ debug_init();
+
+ /* allocate memory */
+ m_local_videoram = std::make_unique<uint16_t[]>(0x100000/2);
+
+#if DEBUG_MIDTUNIT_BLITTER
+ m_debug_videoram = std::make_unique<uint16_t[]>(0x100000/2);
+#endif
+
+ m_logged_rom.reset();
+ m_log_png = false;
+
+ m_dma_timer = timer_alloc(TIMER_DMA);
+
+ /* reset all the globals */
+ m_gfxbank_offset[0] = 0x000000;
+ m_gfxbank_offset[1] = 0x400000;
+
+ memset(m_dma_register, 0, sizeof(m_dma_register));
+ memset(&m_dma_state, 0, sizeof(dma_state));
+ m_dma_state.gfxrom = m_gfxrom->base();
+
+ /* register for state saving */
+ save_item(NAME(m_midtunit_control));
+ save_item(NAME(m_gfxbank_offset));
+ save_pointer(NAME(m_local_videoram), 0x100000/sizeof(m_local_videoram[0]));
+ save_item(NAME(m_videobank_select));
+ save_item(NAME(m_dma_register));
+
+ INIT_TEMPLATED_DMA_DRAW_GROUP(m_dma_draw_skip_scale, true, true);
+ INIT_TEMPLATED_DMA_DRAW_GROUP(m_dma_draw_noskip_scale, false, true);
+ INIT_TEMPLATED_DMA_DRAW_GROUP(m_dma_draw_skip_noscale, true, false);
+ INIT_TEMPLATED_DMA_DRAW_GROUP(m_dma_draw_noskip_noscale, false, false);
+
+ m_gfx_rom_large = false;
+}
+
+void midwunit_video_device::device_start()
+{
+ midtunit_video_device::device_start();
+ m_gfx_rom_large = true;
+}
+
+void midxunit_video_device::device_start()
+{
+ midtunit_video_device::device_start();
+ m_gfx_rom_large = true;
+ m_videobank_select = 1;
+}
+
+
+
+/*************************************
+ *
+ * Banked graphics ROM access
+ *
+ *************************************/
+
+READ16_MEMBER(midtunit_video_device::midtunit_gfxrom_r)
+{
+ uint8_t *base = m_gfxrom->base() + m_gfxbank_offset[(offset >> 21) & 1];
+ offset = (offset & 0x01fffff) * 2;
+ return base[offset] | (base[offset + 1] << 8);
+}
+
+
+READ16_MEMBER(midwunit_video_device::midwunit_gfxrom_r)
+{
+ uint8_t *base = m_gfxrom->base() + m_gfxbank_offset[0];
+ offset *= 2;
+ return base[offset] | (base[offset + 1] << 8);
+}
+
+
+
+/*************************************
+ *
+ * Video RAM read/write
+ *
+ *************************************/
+
+WRITE16_MEMBER(midtunit_video_device::midtunit_vram_w)
+{
+ offset *= 2;
+ if (m_videobank_select)
+ {
+ if (ACCESSING_BITS_0_7)
+ m_local_videoram[offset] = (data & 0xff) | ((m_dma_register[DMA_PALETTE] & 0xff) << 8);
+ if (ACCESSING_BITS_8_15)
+ m_local_videoram[offset + 1] = ((data >> 8) & 0xff) | (m_dma_register[DMA_PALETTE] & 0xff00);
+ }
+ else
+ {
+ if (ACCESSING_BITS_0_7)
+ m_local_videoram[offset] = (m_local_videoram[offset] & 0xff) | ((data & 0xff) << 8);
+ if (ACCESSING_BITS_8_15)
+ m_local_videoram[offset + 1] = (m_local_videoram[offset + 1] & 0xff) | (data & 0xff00);
+ }
+}
+
+
+WRITE16_MEMBER(midtunit_video_device::midtunit_vram_data_w)
+{
+ offset *= 2;
+ if (ACCESSING_BITS_0_7)
+ m_local_videoram[offset] = (data & 0xff) | ((m_dma_register[DMA_PALETTE] & 0xff) << 8);
+ if (ACCESSING_BITS_8_15)
+ m_local_videoram[offset + 1] = ((data >> 8) & 0xff) | (m_dma_register[DMA_PALETTE] & 0xff00);
+}
+
+
+WRITE16_MEMBER(midtunit_video_device::midtunit_vram_color_w)
+{
+ offset *= 2;
+ if (ACCESSING_BITS_0_7)
+ m_local_videoram[offset] = (m_local_videoram[offset] & 0xff) | ((data & 0xff) << 8);
+ if (ACCESSING_BITS_8_15)
+ m_local_videoram[offset + 1] = (m_local_videoram[offset + 1] & 0xff) | (data & 0xff00);
+}
+
+
+READ16_MEMBER(midtunit_video_device::midtunit_vram_r)
+{
+ offset *= 2;
+ if (m_videobank_select)
+ return (m_local_videoram[offset] & 0x00ff) | (m_local_videoram[offset + 1] << 8);
+ else
+ return (m_local_videoram[offset] >> 8) | (m_local_videoram[offset + 1] & 0xff00);
+}
+
+
+READ16_MEMBER(midtunit_video_device::midtunit_vram_data_r)
+{
+ offset *= 2;
+ return (m_local_videoram[offset] & 0x00ff) | (m_local_videoram[offset + 1] << 8);
+}
+
+
+READ16_MEMBER(midtunit_video_device::midtunit_vram_color_r)
+{
+ offset *= 2;
+ return (m_local_videoram[offset] >> 8) | (m_local_videoram[offset + 1] & 0xff00);
+}
+
+
+
+/*************************************
+ *
+ * Shift register read/write
+ *
+ *************************************/
+
+TMS340X0_TO_SHIFTREG_CB_MEMBER(midtunit_video_device::to_shiftreg)
+{
+ memcpy(shiftreg, &m_local_videoram[address >> 3], 2 * 512 * sizeof(uint16_t));
+}
+
+
+TMS340X0_FROM_SHIFTREG_CB_MEMBER(midtunit_video_device::from_shiftreg)
+{
+ memcpy(&m_local_videoram[address >> 3], shiftreg, 2 * 512 * sizeof(uint16_t));
+}
+
+
+
+/*************************************
+ *
+ * Control register
+ *
+ *************************************/
+
+WRITE16_MEMBER(midtunit_video_device::midtunit_control_w)
+{
+ /*
+ other important bits:
+ bit 2 (0x0004) is toggled periodically
+ */
+ logerror("T-unit control = %04X\n", data);
+
+ COMBINE_DATA(&m_midtunit_control);
+
+ /* gfx bank select is bit 7 */
+ if (!(m_midtunit_control & 0x0080) || !m_gfx_rom_large)
+ m_gfxbank_offset[0] = 0x000000;
+ else
+ m_gfxbank_offset[0] = 0x800000;
+
+ /* video bank select is bit 5 */
+ m_videobank_select = (m_midtunit_control >> 5) & 1;
+}
+
+
+WRITE16_MEMBER(midwunit_video_device::midwunit_control_w)
+{
+ /*
+ other important bits:
+ bit 2 (0x0004) is toggled periodically
+ */
+ logerror("Wolf-unit control = %04X\n", data);
+
+ COMBINE_DATA(&m_midtunit_control);
+
+ /* gfx bank select is bits 8-9 */
+ m_gfxbank_offset[0] = 0x800000 * ((m_midtunit_control >> 8) & 3);
+
+ /* video bank select is unknown */
+ m_videobank_select = (m_midtunit_control >> 11) & 1;
+}
+
+
+READ16_MEMBER(midwunit_video_device::midwunit_control_r)
+{
+ return m_midtunit_control;
+}
+
+
+
+/*************************************
+ *
+ * Palette handlers
+ *
+ *************************************/
+
+WRITE16_MEMBER(midxunit_video_device::midxunit_paletteram_w)
+{
+ if (!(offset & 1))
+ m_palette->write16(offset / 2, data, mem_mask);
+}
+
+
+READ16_MEMBER(midxunit_video_device::midxunit_paletteram_r)
+{
+ return m_palette->read16(offset / 2);
+}
+
+
+
+/*************************************
+ *
+ * DMA drawing routines
+ *
+ *************************************/
+
+/*** fast pixel extractors ***/
+#if !defined(ALIGN_SHORTS) && defined(LSB_FIRST)
+#define EXTRACTGEN(m) ((*(uint16_t *)&base[o >> 3] >> (o & 7)) & (m))
+#elif defined(powerc)
+#define EXTRACTGEN(m) ((__lhbrx(base, o >> 3) >> (o & 7)) & (m))
+#else
+#define EXTRACTGEN(m) (((base[o >> 3] | (base[(o >> 3) + 1] << 8)) >> (o & 7)) & (m))
+#endif
+
+/*** core blitter routine macro ***/
+template <int BitsPerPixel, bool XFlip, bool Skip, bool Scale, midtunit_video_device::op_type_t Zero, midtunit_video_device::op_type_t NonZero>
+void midtunit_video_device::dma_draw()
+{
+ int height = m_dma_state.height << 8;
+ uint8_t *base = m_dma_state.gfxrom;
+ uint32_t offset = m_dma_state.offset;
+ uint16_t pal = m_dma_state.palette;
+ uint16_t color = pal | m_dma_state.color;
+ int sy = m_dma_state.ypos;
+ int iy = 0;
+ int ty;
+ int mask = (1 << BitsPerPixel) - 1;
+ int xstep = Scale ? m_dma_state.xstep : 0x100;
+
+ /* loop over the height */
+ while (iy < height)
+ {
+ int startskip = m_dma_state.startskip << 8;
+ int endskip = m_dma_state.endskip << 8;
+ int width = m_dma_state.width << 8;
+ int sx = m_dma_state.xpos;
+ int ix = 0;
+ int tx;
+ uint32_t o = offset;
+ int pre, post;
+ uint16_t *d;
+
+ /* handle skipping */
+ if (Skip)
+ {
+ uint8_t value = EXTRACTGEN(0xff);
+ o += 8;
+
+ /* adjust for preskip */
+ pre = (value & 0x0f) << (m_dma_state.preskip + 8);
+ tx = pre / xstep;
+ if (XFlip)
+ sx = (sx - tx) & XPOSMASK;
+ else
+ sx = (sx + tx) & XPOSMASK;
+ ix += tx * xstep;
+
+ /* adjust for postskip */
+ post = ((value >> 4) & 0x0f) << (m_dma_state.postskip + 8);
+ width -= post;
+ endskip -= post;
+ }
+
+ /* handle Y clipping */
+ if (sy < m_dma_state.topclip || sy > m_dma_state.botclip)
+ goto clipy;
+
+ /* handle start skip */
+ if (ix < startskip)
+ {
+ tx = ((startskip - ix) / xstep) * xstep;
+ ix += tx;
+ o += (tx >> 8) * BitsPerPixel;
+ }
+
+ /* handle end skip */
+ if ((width >> 8) > m_dma_state.width - m_dma_state.endskip)
+ width = (m_dma_state.width - m_dma_state.endskip) << 8;
+
+ /* determine destination pointer */
+#if DEBUG_MIDTUNIT_BLITTER
+ d = m_doing_debug_dma ? &m_debug_videoram[sy * 512] : &m_local_videoram[sy * 512];
+#else
+ d = &m_local_videoram[sy * 512];
+#endif
+
+ /* loop until we draw the entire width */
+ while (ix < width)
+ {
+ /* only process if not clipped */
+ if (sx >= m_dma_state.leftclip && sx <= m_dma_state.rightclip)
+ {
+ /* special case similar handling of zero/non-zero */
+ if (Zero == NonZero)
+ {
+ if (Zero == PIXEL_COLOR)
+ d[sx] = color;
+ else if (Zero == PIXEL_COPY)
+ d[sx] = (EXTRACTGEN(mask)) | pal;
+ }
+
+ /* otherwise, read the pixel and look */
+ else
+ {
+ int pixel = (EXTRACTGEN(mask));
+
+ /* non-zero pixel case */
+ if (pixel)
+ {
+ if (NonZero == PIXEL_COLOR)
+ d[sx] = color;
+ else if (NonZero == PIXEL_COPY)
+ d[sx] = pixel | pal;
+ }
+
+ /* zero pixel case */
+ else
+ {
+ if (Zero == PIXEL_COLOR)
+ d[sx] = color;
+ else if (Zero == PIXEL_COPY)
+ d[sx] = pal;
+ }
+ }
+ }
+
+ /* update pointers */
+ if (XFlip)
+ sx = (sx - 1) & XPOSMASK;
+ else
+ sx = (sx + 1) & XPOSMASK;
+
+ /* advance to the next pixel */
+ if (!Scale)
+ {
+ ix += 0x100;
+ o += BitsPerPixel;
+ }
+ else
+ {
+ tx = ix >> 8;
+ ix += xstep;
+ tx = (ix >> 8) - tx;
+ o += BitsPerPixel * tx;
+ }
+ }
+
+ clipy:
+ /* advance to the next row */
+ if (m_dma_state.yflip)
+ sy = (sy - 1) & YPOSMASK;
+ else
+ sy = (sy + 1) & YPOSMASK;
+ if (!Scale)
+ {
+ iy += 0x100;
+ width = m_dma_state.width;
+ if (Skip)
+ {
+ offset += 8;
+ width -= (pre + post) >> 8;
+ if (width > 0) offset += width * BitsPerPixel;
+ }
+ else
+ {
+ offset += width * BitsPerPixel;
+ }
+ }
+ else
+ {
+ ty = iy >> 8;
+ iy += m_dma_state.ystep;
+ ty = (iy >> 8) - ty;
+ if (!Skip)
+ {
+ offset += ty * m_dma_state.width * BitsPerPixel;
+ }
+ else if (ty--)
+ {
+ o = offset + 8;
+ width = m_dma_state.width - ((pre + post) >> 8);
+ if (width > 0) o += width * BitsPerPixel;
+ while (ty--)
+ {
+ uint8_t value = EXTRACTGEN(0xff);
+ o += 8;
+ pre = (value & 0x0f) << m_dma_state.preskip;
+ post = ((value >> 4) & 0x0f) << m_dma_state.postskip;
+ width = m_dma_state.width - pre - post;
+ if (width > 0) o += width * BitsPerPixel;
+ }
+ offset = o;
+ }
+ }
+ }
+}
+
+DEFINE_TEMPLATED_DMA_DRAW_GROUP(true, true);
+DEFINE_TEMPLATED_DMA_DRAW_GROUP(false, true);
+DEFINE_TEMPLATED_DMA_DRAW_GROUP(true, false);
+DEFINE_TEMPLATED_DMA_DRAW_GROUP(false, false);
+
+
+/*************************************
+ *
+ * DMA finished callback
+ *
+ *************************************/
+
+void midtunit_video_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
+{
+ switch (id)
+ {
+ case TIMER_DMA:
+ m_dma_register[DMA_COMMAND] &= ~0x8000; /* tell the cpu we're done */
+ m_maincpu->set_input_line(0, ASSERT_LINE);
+ break;
+ default:
+ assert_always(false, "Unknown id in midtunit_video_device::device_timer");
+ }
+}
+
+
+
+/*************************************
+ *
+ * DMA reader
+ *
+ *************************************/
+
+READ16_MEMBER(midtunit_video_device::midtunit_dma_r)
+{
+ /* rmpgwt sometimes reads register 0, expecting it to return the */
+ /* current DMA status; thus we map register 0 to register 1 */
+ /* openice does it as well */
+ if (offset == 0)
+ offset = 1;
+ return m_dma_register[offset];
+}
+
+
+
+/*************************************
+ *
+ * DMA write handler
+ *
+ *************************************/
+
+/*
+ * DMA registers
+ * ------------------
+ *
+ * Register | Bit | Use
+ * ----------+-FEDCBA9876543210-+------------
+ * 0 | xxxxxxxx-------- | pixels to drop at the start of each row
+ * | --------xxxxxxxx | pixels to drop at the end of each row
+ * 1 | x--------------- | trigger write (or clear if zero)
+ * | -421------------ | image bpp (0=8)
+ * | ----84---------- | post skip size = (1<<x)
+ * | ------21-------- | pre skip size = (1<<x)
+ * | --------8------- | pre/post skip enable
+ * | ---------4------ | clipping enable
+ * | ----------2----- | flip y
+ * | -----------1---- | flip x
+ * | ------------8--- | blit nonzero pixels as color
+ * | -------------4-- | blit zero pixels as color
+ * | --------------2- | blit nonzero pixels
+ * | ---------------1 | blit zero pixels
+ * 2 | xxxxxxxxxxxxxxxx | source address low word
+ * 3 | xxxxxxxxxxxxxxxx | source address high word
+ * 4 | -------xxxxxxxxx | detination x
+ * 5 | -------xxxxxxxxx | destination y
+ * 6 | ------xxxxxxxxxx | image columns
+ * 7 | ------xxxxxxxxxx | image rows
+ * 8 | xxxxxxxxxxxxxxxx | palette
+ * 9 | xxxxxxxxxxxxxxxx | color
+ * 10 | ---xxxxxxxxxxxxx | scale x
+ * 11 | ---xxxxxxxxxxxxx | scale y
+ * 12 | -------xxxxxxxxx | top/left clip
+ * 13 | -------xxxxxxxxx | bottom/right clip
+ * 14 | ---------------- | test
+ * 15 | xxxxxxxx-------- | zero detect byte
+ * | --------8------- | extra page
+ * | ---------4------ | destination size
+ * | ----------2----- | select top/bottom or left/right for reg 12/13
+ */
+
+WRITE16_MEMBER(midtunit_video_device::midtunit_dma_w)
+{
+ static const uint8_t register_map[2][16] =
+ {
+ { 0,1,2,3,4,5,6,7,8,9,10,11,16,17,14,15 },
+ { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 }
+ };
+ int regbank = (m_dma_register[DMA_CONFIG] >> 5) & 1;
+ int pixels = 0;
+
+ /* blend with the current register contents */
+ int regnum = register_map[regbank][offset];
+ COMBINE_DATA(&m_dma_register[regnum]);
+
+ /* only writes to DMA_COMMAND actually cause actions */
+ if (regnum != DMA_COMMAND)
+ return;
+
+ /* high bit triggers action */
+ int command = m_dma_register[DMA_COMMAND];
+ m_maincpu->set_input_line(0, CLEAR_LINE);
+ if (!(command & 0x8000))
+ return;
+
+ g_profiler.start(PROFILER_USER1);
+
+ /* determine bpp */
+ int bpp = (command >> 12) & 7;
+
+ /* fill in the basic data */
+ m_dma_state.xpos = m_dma_register[DMA_XSTART] & XPOSMASK;
+ m_dma_state.ypos = m_dma_register[DMA_YSTART] & YPOSMASK;
+ m_dma_state.width = m_dma_register[DMA_WIDTH] & 0x3ff;
+ m_dma_state.height = m_dma_register[DMA_HEIGHT] & 0x3ff;
+ m_dma_state.palette = m_dma_register[DMA_PALETTE] & 0x7f00;
+ m_dma_state.color = m_dma_register[DMA_COLOR] & 0xff;
+
+ /* fill in the rev 2 data */
+ m_dma_state.yflip = (command & 0x20) >> 5;
+ m_dma_state.preskip = (command >> 8) & 3;
+ m_dma_state.postskip = (command >> 10) & 3;
+ m_dma_state.xstep = m_dma_register[DMA_SCALE_X] ? m_dma_register[DMA_SCALE_X] : 0x100;
+ m_dma_state.ystep = m_dma_register[DMA_SCALE_Y] ? m_dma_register[DMA_SCALE_Y] : 0x100;
+
+ /* clip the clippers */
+ m_dma_state.topclip = m_dma_register[DMA_TOPCLIP] & 0x1ff;
+ m_dma_state.botclip = m_dma_register[DMA_BOTCLIP] & 0x1ff;
+ m_dma_state.leftclip = m_dma_register[DMA_LEFTCLIP] & 0x3ff;
+ m_dma_state.rightclip = m_dma_register[DMA_RIGHTCLIP] & 0x3ff;
+
+ /* determine the offset */
+ uint32_t gfxoffset = m_dma_register[DMA_OFFSETLO] | (m_dma_register[DMA_OFFSETHI] << 16);
+
+ /* special case: drawing mode C doesn't need to know about any pixel data */
+ if ((command & 0x0f) == 0x0c)
+ gfxoffset = 0;
+
+ /* determine the location */
+ if (!m_gfx_rom_large && gfxoffset >= 0x2000000)
+ gfxoffset -= 0x2000000;
+ if (gfxoffset >= 0xf8000000)
+ gfxoffset -= 0xf8000000;
+ if (gfxoffset < 0x10000000)
+ m_dma_state.offset = gfxoffset;
+ else
+ {
+ logerror("DMA source out of range: %08X\n", gfxoffset);
+ goto skipdma;
+ }
+
+ if (LOG_DMA || DEBUG_MIDTUNIT_BLITTER)
+ {
+ if (machine().input().code_pressed(KEYCODE_COLON))
+ {
+ logerror("DMA command %04X: (bpp=%d skip=%d xflip=%d yflip=%d preskip=%d postskip=%d)\n",
+ command, (command >> 12) & 7, (command >> 7) & 1, (command >> 4) & 1, (command >> 5) & 1, (command >> 8) & 3, (command >> 10) & 3);
+ logerror(" offset=%08X pos=(%d,%d) w=%d h=%d clip=(%d,%d)-(%d,%d)\n", gfxoffset, m_dma_state.xpos, m_dma_state.ypos,
+ m_dma_state.width, m_dma_state.height, m_dma_state.leftclip, m_dma_state.topclip, m_dma_state.rightclip, m_dma_state.botclip);
+ logerror(" palette=%04X color=%04X lskip=%02X rskip=%02X xstep=%04X ystep=%04X test=%04X config=%04X\n",
+ m_dma_register[DMA_PALETTE], m_dma_register[DMA_COLOR],
+ m_dma_register[DMA_LRSKIP] >> 8, m_dma_register[DMA_LRSKIP] & 0xff,
+ m_dma_register[DMA_SCALE_X], m_dma_register[DMA_SCALE_Y], m_dma_register[DMA_UNKNOWN_E],
+ m_dma_register[DMA_CONFIG]);
+ logerror("----\n");
+ }
+ }
+
+ /* there seems to be two types of behavior for the DMA chip */
+ /* for MK1 and MK2, the upper byte of the LRSKIP is the */
+ /* starting skip value, and the lower byte is the ending */
+ /* skip value; for the NBA Jam, Hangtime, and Open Ice, the */
+ /* full word seems to be the starting skip value. */
+ if (command & 0x40)
+ {
+ m_dma_state.startskip = m_dma_register[DMA_LRSKIP] & 0xff;
+ m_dma_state.endskip = m_dma_register[DMA_LRSKIP] >> 8;
+ }
+ else
+ {
+ m_dma_state.startskip = 0;
+ m_dma_state.endskip = m_dma_register[DMA_LRSKIP];
+ }
+
+ if (m_log_png)
+ {
+ if (command & 0x80)
+ {
+ log_bitmap(command, bpp ? bpp : 8, true);
+ }
+ else
+ {
+ log_bitmap(command, bpp ? bpp : 8, false);
+ }
+ }
+
+ /* then draw */
+ if (m_dma_state.xstep == 0x100 && m_dma_state.ystep == 0x100)
+ {
+ if (command & 0x80)
+ ((this)->*(m_dma_draw_skip_noscale[(command & 0x1f)*8 + bpp]))();
+ else
+ ((this)->*(m_dma_draw_noskip_noscale[(command & 0x1f)*8 + bpp]))();
+
+ pixels = m_dma_state.width * m_dma_state.height;
+ }
+ else
+ {
+ if (command & 0x80)
+ ((this)->*(m_dma_draw_skip_scale[(command & 0x1f)*8 + bpp]))();
+ else
+ ((this)->*(m_dma_draw_noskip_scale[(command & 0x1f)*8 + bpp]))();
+
+ if (m_dma_state.xstep && m_dma_state.ystep)
+ pixels = ((m_dma_state.width << 8) / m_dma_state.xstep) * ((m_dma_state.height << 8) / m_dma_state.ystep);
+ else
+ pixels = 0;
+ }
+
+ /* signal we're done */
+skipdma:
+ m_dma_timer->adjust(attotime::from_nsec(41 * pixels));
+
+ g_profiler.stop();
+}
+
+
+
+/*************************************
+ *
+ * Core refresh routine
+ *
+ *************************************/
+
+TMS340X0_SCANLINE_IND16_CB_MEMBER(midtunit_video_device::scanline_update)
+{
+ uint16_t *src = &m_local_videoram[(params->rowaddr << 9) & 0x3fe00];
+ uint16_t *dest = &bitmap.pix16(scanline);
+ int coladdr = params->coladdr << 1;
+
+ /* copy the non-blanked portions of this scanline */
+ for (int x = params->heblnk; x < params->hsblnk; x++)
+ dest[x] = src[coladdr++ & 0x1ff] & 0x7fff;
+}
+
+TMS340X0_SCANLINE_IND16_CB_MEMBER(midxunit_video_device::scanline_update)
+{
+ uint32_t fulladdr = ((params->rowaddr << 16) | params->coladdr) >> 3;
+ uint16_t *src = &m_local_videoram[fulladdr & 0x3fe00];
+ uint16_t *dest = &bitmap.pix16(scanline);
+
+ /* copy the non-blanked portions of this scanline */
+ for (int x = params->heblnk; x < params->hsblnk; x++)
+ dest[x] = src[fulladdr++ & 0x1ff] & 0x7fff;
+}
+
+void midtunit_video_device::log_bitmap(int command, int bpp, bool Skip)
+{
+ const uint32_t raw_offset = m_dma_register[DMA_OFFSETLO] | (m_dma_register[DMA_OFFSETHI] << 16);
+ if (m_logged_rom[raw_offset >> 6] & (1ULL << (raw_offset & 0x3f)))
+ return;
+
+ int Zero = PIXEL_SKIP;
+ int NonZero = PIXEL_SKIP;
+ switch (command & 0xf)
+ {
+ case 1: Zero = PIXEL_COPY; NonZero = PIXEL_SKIP; break;
+ case 2: Zero = PIXEL_SKIP; NonZero = PIXEL_COPY; break;
+ case 3: Zero = PIXEL_COPY; NonZero = PIXEL_COPY; break;
+ case 4: Zero = PIXEL_COLOR; NonZero = PIXEL_SKIP; break;
+ case 5: Zero = PIXEL_COLOR; NonZero = PIXEL_SKIP; break;
+ case 6: Zero = PIXEL_COLOR; NonZero = PIXEL_COPY; break;
+ case 7: Zero = PIXEL_COLOR; NonZero = PIXEL_COPY; break;
+ case 8: Zero = PIXEL_SKIP; NonZero = PIXEL_COLOR; break;
+ case 9: Zero = PIXEL_COPY; NonZero = PIXEL_COLOR; break;
+ case 10: Zero = PIXEL_SKIP; NonZero = PIXEL_COLOR; break;
+ case 11: Zero = PIXEL_COPY; NonZero = PIXEL_COLOR; break;
+ case 12: Zero = PIXEL_COLOR; NonZero = PIXEL_COLOR; break;
+ case 13: Zero = PIXEL_COLOR; NonZero = PIXEL_COLOR; break;
+ case 14: Zero = PIXEL_COLOR; NonZero = PIXEL_COLOR; break;
+ case 15: Zero = PIXEL_COLOR; NonZero = PIXEL_COLOR; break;
+ default: return;
+ }
+
+ emu_file file(m_log_path, OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
+
+ char name_buf[256];
+ snprintf(name_buf, 255, "0x%08x.png", raw_offset);
+ auto const filerr = file.open(name_buf);
+ if (filerr != osd_file::error::NONE)
+ {
+ return;
+ }
+
+ m_logged_rom[raw_offset >> 6] |= 1ULL << (raw_offset & 0x3f);
+
+ m_log_bitmap.allocate(m_dma_state.width, m_dma_state.height);
+ m_log_bitmap.fill(0);
+
+ uint8_t *base = m_dma_state.gfxrom;
+ uint32_t offset = m_dma_state.offset;
+ uint16_t pal = m_dma_state.palette;
+ uint16_t color = pal | m_dma_state.color;
+ int mask = (1 << bpp) - 1;
+
+ /* loop over the height */
+ for (int y = 0; y < m_dma_state.height; y++)
+ {
+ int startskip = m_dma_state.startskip;
+ int endskip = m_dma_state.endskip;
+ int width = m_dma_state.width;
+ int ix = 0;
+ int tx;
+ uint32_t o = offset;
+ int pre, post;
+
+ /* handle skipping */
+ if (Skip)
+ {
+ uint8_t value = EXTRACTGEN(0xff);
+ o += 8;
+
+ /* adjust for preskip */
+ pre = (value & 0x0f) << m_dma_state.preskip;
+ tx = pre;
+ ix += tx;
+
+ /* adjust for postskip */
+ post = ((value >> 4) & 0x0f) << m_dma_state.postskip;
+ width -= post;
+ endskip -= post;
+ }
+
+ /* handle start skip */
+ if (ix < startskip)
+ {
+ tx = (startskip - ix);
+ ix += tx;
+ o += tx * bpp;
+ }
+
+ /* handle end skip */
+ if (width > m_dma_state.width - m_dma_state.endskip)
+ width = m_dma_state.width - m_dma_state.endskip;
+
+ bitmap_rgb32::pixel_t *d = &m_log_bitmap.pix(y, ix);
+
+ /* determine destination pointer */
+
+ /* loop until we draw the entire width */
+ while (ix < width)
+ {
+ /* special case similar handling of zero/non-zero */
+ if (Zero == NonZero)
+ {
+ if (Zero == PIXEL_COLOR)
+ *d = m_palette->palette()->entry_list_raw()[color];
+ else if (Zero == PIXEL_COPY)
+ *d = m_palette->palette()->entry_list_raw()[(EXTRACTGEN(mask)) | pal];
+ }
+
+ /* otherwise, read the pixel and look */
+ else
+ {
+ int pixel = (EXTRACTGEN(mask));
+
+ /* non-zero pixel case */
+ if (pixel)
+ {
+ if (NonZero == PIXEL_COLOR)
+ *d = m_palette->palette()->entry_list_raw()[color];
+ else if (NonZero == PIXEL_COPY)
+ *d = m_palette->palette()->entry_list_raw()[pixel | pal];
+ }
+
+ /* zero pixel case */
+ else
+ {
+ if (Zero == PIXEL_COLOR)
+ *d = m_palette->palette()->entry_list_raw()[color];
+ else if (Zero == PIXEL_COPY)
+ *d = m_palette->palette()->entry_list_raw()[pal];
+ }
+ }
+
+ /* advance to the next pixel */
+ ix++;
+ d++;
+ o += bpp;
+ }
+
+ /* advance to the next row */
+ width = m_dma_state.width;
+ if (Skip)
+ {
+ offset += 8;
+ width -= pre + post;
+ if (width > 0) offset += width * bpp;
+ }
+ else
+ {
+ offset += width * bpp;
+ }
+ }
+
+ png_write_bitmap(file, nullptr, m_log_bitmap, 0, nullptr);
+#if 0
+ if (m_log_json)
+ {
+ char hex_buf[11];
+ rapidjson::StringBuffer s;
+ rapidjson::PrettyWriter<rapidjson::StringBuffer> writer(s);
+ emu_file json(m_log_path, OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
+
+ snprintf(name_buf, 255, "0x%08x.json", raw_offset);
+ auto const jsonerr = json.open(name_buf);
+ if (jsonerr != osd_file::error::NONE)
+ {
+ return;
+ }
+
+ writer.StartObject();
+ writer.Key("DMAState");
+ writer.StartObject();
+
+ sprintf(hex_buf, "0x%08x", raw_offset);
+ writer.Key("MemoryAddress");
+ writer.String(hex_buf);
+
+ sprintf(hex_buf, "0x%08x", m_dma_state.offset >> 3);
+ writer.Key("ROMSourceOffsetByte");
+ writer.String(hex_buf);
+
+ writer.Key("ROMSourceOffsetBit");
+ writer.Int(m_dma_state.offset & 7);
+
+ writer.Key("Size");
+ writer.StartArray();
+ writer.Int(m_dma_state.width);
+ writer.Int(m_dma_state.height);
+ writer.EndArray();
+
+ writer.Key("BitsPerPixel");
+ writer.Uint(bpp);
+
+ writer.Key("PaletteBank");
+ writer.Uint(m_dma_state.palette >> 8);
+
+ writer.Key("FGColor");
+ writer.Uint(m_dma_state.color);
+
+ writer.Key("YFlip");
+ writer.Bool(m_dma_state.yflip ? true : false);
+
+ writer.Key("PreSkipScale");
+ writer.Uint(m_dma_state.preskip);
+
+ writer.Key("PostSkipScale");
+ writer.Uint(m_dma_state.postskip);
+
+ writer.Key("RowSkipBits");
+ writer.Int(m_dma_state.rowbits);
+
+ writer.Key("StartPixelsToSkip");
+ writer.Int(m_dma_state.startskip);
+
+ writer.Key("EndPixelsToSkip");
+ writer.Int(m_dma_state.endskip);
+
+ writer.EndObject();
+ writer.EndObject();
+
+ json.puts(s.GetString());
+ json.close();
+ }
+#endif
+}
diff --git a/docs/release/src/osd/windows/winmain.cpp b/docs/release/src/osd/windows/winmain.cpp
index 10fa5e3b836..f863bb21b2d 100644
--- a/docs/release/src/osd/windows/winmain.cpp
+++ b/docs/release/src/osd/windows/winmain.cpp
@@ -165,6 +165,7 @@ const options_entry windows_options::s_option_entries[] =
// video options
{ nullptr, nullptr, OPTION_HEADER, "WINDOWS VIDEO OPTIONS" },
{ WINOPTION_MENU, "0", OPTION_BOOLEAN, "enables menu bar if available by UI implementation" },
+ { WINOPTION_ATTACH_WINDOW, "", OPTION_STRING, "attach to arbitrary window" },
// post-processing options
{ nullptr, nullptr, OPTION_HEADER, "DIRECT3D POST-PROCESSING OPTIONS" },
diff --git a/docs/release/src/osd/windows/winmain.h b/docs/release/src/osd/windows/winmain.h
index f6afec3bb2b..fa7f5acf8f7 100644
--- a/docs/release/src/osd/windows/winmain.h
+++ b/docs/release/src/osd/windows/winmain.h
@@ -24,6 +24,7 @@
// video options
#define WINOPTION_MENU "menu"
+#define WINOPTION_ATTACH_WINDOW "attach_window"
// core post-processing options
#define WINOPTION_HLSLPATH "hlslpath"
@@ -135,6 +136,7 @@ public:
// video options
bool menu() const { return bool_value(WINOPTION_MENU); }
+ const char *attach_window() const { return value(WINOPTION_ATTACH_WINDOW); }
// core post-processing options
const char *screen_post_fx_dir() const { return value(WINOPTION_HLSLPATH); }
diff --git a/docs/release/src/osd/winui/hbmameui.rc b/docs/release/src/osd/winui/hbmameui.rc
index a9e5c47ac65..43045bcf4b8 100644
--- a/docs/release/src/osd/winui/hbmameui.rc
+++ b/docs/release/src/osd/winui/hbmameui.rc
@@ -1051,7 +1051,8 @@ BEGIN
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 "Snapshot Pattern",IDC_STATIC,202,4,170,28
+// COMBOBOX IDC_SNAPNAME,209,14,155,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_SNAPNAME
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
@@ -1066,7 +1067,6 @@ BEGIN
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
diff --git a/docs/release/src/version.cpp b/docs/release/src/version.cpp
index 8814280b6c8..ba10aaf964b 100644
--- a/docs/release/src/version.cpp
+++ b/docs/release/src/version.cpp
@@ -8,7 +8,7 @@
***************************************************************************/
-#define BARE_BUILD_VERSION "0.212"
+#define BARE_BUILD_VERSION "0.213"
extern const char bare_build_version[];
extern const char build_version[];
diff --git a/makefile b/makefile
index 464572331c7..9166b1423be 100644
--- a/makefile
+++ b/makefile
@@ -1645,14 +1645,14 @@ endif
ifeq (posix,$(SHELLTYPE))
$(GENDIR)/version.cpp: $(GENDIR)/git_desc | $(GEN_FOLDERS)
- @echo '#define BARE_BUILD_VERSION "0.212"' > $@
+ @echo '#define BARE_BUILD_VERSION "0.213"' > $@
@echo 'extern const char bare_build_version[];' >> $@
@echo 'extern const char build_version[];' >> $@
@echo 'const char bare_build_version[] = BARE_BUILD_VERSION;' >> $@
@echo 'const char build_version[] = BARE_BUILD_VERSION " ($(NEW_GIT_VERSION))";' >> $@
else
$(GENDIR)/version.cpp: $(GENDIR)/git_desc
- @echo #define BARE_BUILD_VERSION "0.212" > $@
+ @echo #define BARE_BUILD_VERSION "0.213" > $@
@echo extern const char bare_build_version[]; >> $@
@echo extern const char build_version[]; >> $@
@echo const char bare_build_version[] = BARE_BUILD_VERSION; >> $@
diff --git a/src/version.cpp b/src/version.cpp
index 8814280b6c8..ba10aaf964b 100644
--- a/src/version.cpp
+++ b/src/version.cpp
@@ -8,7 +8,7 @@
***************************************************************************/
-#define BARE_BUILD_VERSION "0.212"
+#define BARE_BUILD_VERSION "0.213"
extern const char bare_build_version[];
extern const char build_version[];