diff options
author | 2019-08-29 10:30:23 +1000 | |
---|---|---|
committer | 2019-08-29 10:30:23 +1000 | |
commit | 4893c505ecb5eacd36a1d167db8fadc03a2bc149 (patch) | |
tree | 06eaf90168da5c2c294a2d30d5ff78e38f8c8abc | |
parent | fe7e7a75937c61ad948bc573d699f82dce3985b4 (diff) |
0.213 Release filestag213
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 Binary files differindex abed1630617..4578360deb0 100644 --- a/docs/release/hbmame212s.rar +++ b/docs/release/hbmame213s.rar 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 << """; break; + case '&': stream << "&"; break; + case '<': stream << "<"; break; + case '>': stream << ">"; 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> ¶ms) +{ + 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> ¶ms) +{ + 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> ¶ms) +{ + 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[]; @@ -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[]; |