summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/release/docs/hbnew.txt2
-rw-r--r--docs/release/scripts/src/3rdparty.lua5
-rw-r--r--docs/release/scripts/src/bus.lua21
-rw-r--r--docs/release/scripts/src/cpu.lua41
-rw-r--r--docs/release/scripts/src/formats.lua2
-rw-r--r--docs/release/scripts/src/lib.lua9
-rw-r--r--docs/release/scripts/src/machine.lua12
-rw-r--r--docs/release/scripts/src/osd/mac.lua1
-rw-r--r--docs/release/scripts/src/osd/modules.lua1
-rw-r--r--docs/release/scripts/src/osd/sdl.lua1
-rw-r--r--docs/release/scripts/src/osd/windows.lua36
-rw-r--r--docs/release/scripts/target/hbmame/hbmame.lua1
-rw-r--r--docs/release/scripts/target/mame/arcade.lua4
-rw-r--r--docs/release/scripts/target/mame/mess.lua6
-rw-r--r--docs/release/src/devices/cpu/m68000/m68kcpu.cpp1
-rw-r--r--docs/release/src/devices/video/vector.cpp4
-rw-r--r--docs/release/src/emu/romload.cpp70
-rw-r--r--docs/release/src/emu/video.cpp26
-rw-r--r--docs/release/src/emu/video.h4
-rw-r--r--docs/release/src/frontend/mame/audit.cpp16
-rw-r--r--docs/release/src/frontend/mame/clifront.cpp6
-rw-r--r--docs/release/src/frontend/mame/language.cpp4
-rw-r--r--docs/release/src/frontend/mame/mameopts.cpp4
-rw-r--r--docs/release/src/frontend/mame/ui/inifile.cpp6
-rw-r--r--docs/release/src/hbmame/drivers/atarig42.cpp4
-rw-r--r--docs/release/src/hbmame/drivers/bublbobl.cpp25
-rw-r--r--docs/release/src/hbmame/drivers/midwunit.cpp141
-rw-r--r--docs/release/src/hbmame/drivers/mslug3.cpp37
-rw-r--r--docs/release/src/hbmame/drivers/mslug4.cpp7
-rw-r--r--docs/release/src/hbmame/drivers/snesb.cpp6
-rw-r--r--docs/release/src/hbmame/hbmame.lst5
-rw-r--r--docs/release/src/mame/drivers/galaxian.cpp11
-rw-r--r--docs/release/src/mame/drivers/konamigx.cpp70
-rw-r--r--docs/release/src/mame/video/avgdvg.cpp18
-rw-r--r--docs/release/src/mame/video/midtunit.cpp4
-rw-r--r--docs/release/src/osd/winui/emu_opts.cpp20
-rw-r--r--docs/release/src/osd/winui/screenshot.cpp42
-rw-r--r--docs/release/src/osd/winui/winui.cpp17
-rw-r--r--docs/release/src/version.cpp2
-rw-r--r--makefile4
-rw-r--r--src/hbmame/drivers/atarig42.cpp4
-rw-r--r--src/version.cpp2
42 files changed, 437 insertions, 265 deletions
diff --git a/docs/release/docs/hbnew.txt b/docs/release/docs/hbnew.txt
index e02566d4be9..45e5e3afbad 100644
--- a/docs/release/docs/hbnew.txt
+++ b/docs/release/docs/hbnew.txt
@@ -1,7 +1,7 @@
What's new in HBMAME
====================
-2021-08-25 0.235
+2021-08-24 0.235
- mslug4xg: fixed freeze in attract mode
- sblast2bs01: fixed crash at start
diff --git a/docs/release/scripts/src/3rdparty.lua b/docs/release/scripts/src/3rdparty.lua
index e8b08df8f0c..78d73248623 100644
--- a/docs/release/scripts/src/3rdparty.lua
+++ b/docs/release/scripts/src/3rdparty.lua
@@ -1416,7 +1416,6 @@ end
"__STDC_FORMAT_MACROS",
"__STDC_CONSTANT_MACROS",
"BGFX_CONFIG_MAX_FRAME_BUFFERS=128",
- "IMGUI_DISABLE_OBSOLETE_FUNCTIONS",
}
if _OPTIONS["targetos"]=="linux" or _OPTIONS["targetos"]=="netbsd" or _OPTIONS["targetos"]=="openbsd" then
@@ -1453,17 +1452,19 @@ end
MAME_DIR .. "3rdparty/bgfx/src/renderer_noop.cpp",
MAME_DIR .. "3rdparty/bgfx/src/renderer_nvn.cpp",
MAME_DIR .. "3rdparty/bgfx/src/renderer_vk.cpp",
+ MAME_DIR .. "3rdparty/bgfx/src/renderer_webgpu.cpp",
MAME_DIR .. "3rdparty/bgfx/src/shader.cpp",
MAME_DIR .. "3rdparty/bgfx/src/shader_dx9bc.cpp",
MAME_DIR .. "3rdparty/bgfx/src/shader_dxbc.cpp",
MAME_DIR .. "3rdparty/bgfx/src/shader_spirv.cpp",
MAME_DIR .. "3rdparty/bgfx/src/topology.cpp",
- MAME_DIR .. "3rdparty/bgfx/src/vertexdecl.cpp",
+ MAME_DIR .. "3rdparty/bgfx/src/vertexlayout.cpp",
MAME_DIR .. "3rdparty/bgfx/examples/common/imgui/imgui.cpp",
MAME_DIR .. "3rdparty/bgfx/examples/common/nanovg/nanovg.cpp",
MAME_DIR .. "3rdparty/bgfx/examples/common/nanovg/nanovg_bgfx.cpp",
MAME_DIR .. "3rdparty/bgfx/3rdparty/dear-imgui/imgui.cpp",
MAME_DIR .. "3rdparty/bgfx/3rdparty/dear-imgui/imgui_draw.cpp",
+ MAME_DIR .. "3rdparty/bgfx/3rdparty/dear-imgui/imgui_tables.cpp",
MAME_DIR .. "3rdparty/bgfx/3rdparty/dear-imgui/imgui_widgets.cpp",
}
if _OPTIONS["targetos"]=="macosx" then
diff --git a/docs/release/scripts/src/bus.lua b/docs/release/scripts/src/bus.lua
index d889e7af294..cca26b543e0 100644
--- a/docs/release/scripts/src/bus.lua
+++ b/docs/release/scripts/src/bus.lua
@@ -259,6 +259,23 @@ end
---------------------------------------------------
--
+--@src/devices/bus/apricot/video/video.h,BUSES["APRICOT_VIDEO"] = true
+---------------------------------------------------
+
+if (BUSES["APRICOT_VIDEO"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/apricot/video/video.cpp",
+ MAME_DIR .. "src/devices/bus/apricot/video/video.h",
+ MAME_DIR .. "src/devices/bus/apricot/video/cards.cpp",
+ MAME_DIR .. "src/devices/bus/apricot/video/cards.h",
+ MAME_DIR .. "src/devices/bus/apricot/video/mono.cpp",
+ MAME_DIR .. "src/devices/bus/apricot/video/mono.h",
+ }
+end
+
+
+---------------------------------------------------
+--
--@src/devices/bus/aquarius/slot.h,BUSES["AQUARIUS"] = true
---------------------------------------------------
@@ -1087,6 +1104,8 @@ if (BUSES["ELECTRON"]~=null) then
MAME_DIR .. "src/devices/bus/electron/fbjoy.h",
MAME_DIR .. "src/devices/bus/electron/fbprint.cpp",
MAME_DIR .. "src/devices/bus/electron/fbprint.h",
+ MAME_DIR .. "src/devices/bus/electron/mc68k.cpp",
+ MAME_DIR .. "src/devices/bus/electron/mc68k.h",
MAME_DIR .. "src/devices/bus/electron/mode7.cpp",
MAME_DIR .. "src/devices/bus/electron/mode7.h",
MAME_DIR .. "src/devices/bus/electron/plus1.cpp",
@@ -2472,6 +2491,8 @@ if (BUSES["A2BUS"]~=null) then
MAME_DIR .. "src/devices/bus/a2bus/nippelclock.h",
MAME_DIR .. "src/devices/bus/a2bus/pc_xporter.cpp",
MAME_DIR .. "src/devices/bus/a2bus/pc_xporter.h",
+ MAME_DIR .. "src/devices/bus/a2bus/q68.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/q68.h",
MAME_DIR .. "src/devices/bus/a2bus/ramcard128k.cpp",
MAME_DIR .. "src/devices/bus/a2bus/ramcard128k.h",
MAME_DIR .. "src/devices/bus/a2bus/ramcard16k.cpp",
diff --git a/docs/release/scripts/src/cpu.lua b/docs/release/scripts/src/cpu.lua
index de81507f8a9..a8969301246 100644
--- a/docs/release/scripts/src/cpu.lua
+++ b/docs/release/scripts/src/cpu.lua
@@ -13,7 +13,7 @@
-- Dynamic recompiler objects
--------------------------------------------------
-DRC_CPUS = { "E1", "SH", "MIPS3", "POWERPC", "RSP", "ARM7", "ADSP21062", "MB86235", "DSP16", "UNSP" }
+DRC_CPUS = { "E1", "SH", "MIPS3", "POWERPC", "ARM7", "ADSP21062", "MB86235", "DSP16", "UNSP" }
CPU_INCLUDE_DRC = false
for i, v in ipairs(DRC_CPUS) do
if (CPUS[v]~=null) then
@@ -2143,39 +2143,6 @@ if CPUS["RSP"] then
MAME_DIR .. "src/devices/cpu/rsp/rsp.cpp",
MAME_DIR .. "src/devices/cpu/rsp/rsp.h",
MAME_DIR .. "src/devices/cpu/rsp/rspdefs.h",
- MAME_DIR .. "src/devices/cpu/rsp/rspdrc.cpp",
- MAME_DIR .. "src/devices/cpu/rsp/rspfe.cpp",
- MAME_DIR .. "src/devices/cpu/rsp/rspfe.h",
- MAME_DIR .. "src/devices/cpu/rsp/rspcp2.cpp",
- MAME_DIR .. "src/devices/cpu/rsp/rspcp2.h",
- MAME_DIR .. "src/devices/cpu/rsp/rspcp2d.cpp",
- MAME_DIR .. "src/devices/cpu/rsp/rspcp2d.h",
- MAME_DIR .. "src/devices/cpu/rsp/clamp.h",
- MAME_DIR .. "src/devices/cpu/rsp/vabs.h",
- MAME_DIR .. "src/devices/cpu/rsp/vadd.h",
- MAME_DIR .. "src/devices/cpu/rsp/vaddc.h",
- MAME_DIR .. "src/devices/cpu/rsp/vand.h",
- MAME_DIR .. "src/devices/cpu/rsp/vch.h",
- MAME_DIR .. "src/devices/cpu/rsp/vcl.h",
- MAME_DIR .. "src/devices/cpu/rsp/vcmp.h",
- MAME_DIR .. "src/devices/cpu/rsp/vcr.h",
- MAME_DIR .. "src/devices/cpu/rsp/vdivh.h",
- MAME_DIR .. "src/devices/cpu/rsp/vldst.h",
- MAME_DIR .. "src/devices/cpu/rsp/vmac.h",
- MAME_DIR .. "src/devices/cpu/rsp/vmov.h",
- MAME_DIR .. "src/devices/cpu/rsp/vmrg.h",
- MAME_DIR .. "src/devices/cpu/rsp/vmudh.h",
- MAME_DIR .. "src/devices/cpu/rsp/vmul.h",
- MAME_DIR .. "src/devices/cpu/rsp/vmulh.h",
- MAME_DIR .. "src/devices/cpu/rsp/vmull.h",
- MAME_DIR .. "src/devices/cpu/rsp/vmulm.h",
- MAME_DIR .. "src/devices/cpu/rsp/vmuln.h",
- MAME_DIR .. "src/devices/cpu/rsp/vor.h",
- MAME_DIR .. "src/devices/cpu/rsp/vrcpsq.h",
- MAME_DIR .. "src/devices/cpu/rsp/vrsq.h",
- MAME_DIR .. "src/devices/cpu/rsp/vsub.h",
- MAME_DIR .. "src/devices/cpu/rsp/vsubc.h",
- MAME_DIR .. "src/devices/cpu/rsp/vxor.h",
MAME_DIR .. "src/devices/cpu/rsp/rspdiv.h",
}
end
@@ -2623,15 +2590,17 @@ if CPUS["TMS57002"] then
{ MAME_DIR .. "src/devices/cpu/tms57002/tmsops.cpp", GEN_DIR .. "emu/cpu/tms57002/tms57002.hxx" },
}
custombuildtask {
- { MAME_DIR .. "src/devices/cpu/tms57002/tmsinstr.lst" , GEN_DIR .. "emu/cpu/tms57002/tms57002.hxx", { MAME_DIR .. "src/devices/cpu/tms57002/tmsmake.py" }, {"@echo Generating TMS57002 source file...", PYTHON .. " $(1) $(<) $(@)" } }
+ { MAME_DIR .. "src/devices/cpu/tms57002/tmsinstr.lst" , GEN_DIR .. "emu/cpu/tms57002/tms57002.hxx", { MAME_DIR .. "src/devices/cpu/tms57002/tmsmake.py" }, {"@echo Generating TMS57002 source file...", PYTHON .. " $(1) s $(<) $(@)" } }
}
end
if opt_tool(CPUS, "TMS57002") then
table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/tms57002/57002dsm.cpp")
table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/tms57002/57002dsm.h")
+ table.insert(disasm_dependency , { MAME_DIR .. "src/devices/cpu/tms57002/57002dsm.cpp", GEN_DIR .. "emu/cpu/tms57002/tms57002d.hxx" } )
table.insert(disasm_dependency , { MAME_DIR .. "src/devices/cpu/tms57002/57002dsm.cpp", GEN_DIR .. "emu/cpu/tms57002/tms57002.hxx" } )
- table.insert(disasm_custombuildtask , { MAME_DIR .. "src/devices/cpu/tms57002/tmsinstr.lst" , GEN_DIR .. "emu/cpu/tms57002/tms57002.hxx", { MAME_DIR .. "src/devices/cpu/tms57002/tmsmake.py" }, {"@echo Generating TMS57002 source file...", PYTHON .. " $(1) $(<) $(@)" }})
+ table.insert(disasm_custombuildtask , { MAME_DIR .. "src/devices/cpu/tms57002/tmsinstr.lst" , GEN_DIR .. "emu/cpu/tms57002/tms57002d.hxx", { MAME_DIR .. "src/devices/cpu/tms57002/tmsmake.py" }, {"@echo Generating TMS57002 source file...", PYTHON .. " $(1) d $(<) $(@)" }})
+ table.insert(disasm_custombuildtask , { MAME_DIR .. "src/devices/cpu/tms57002/tmsinstr.lst" , GEN_DIR .. "emu/cpu/tms57002/tms57002.hxx", { MAME_DIR .. "src/devices/cpu/tms57002/tmsmake.py" }, {"@echo Generating TMS57002 source file...", PYTHON .. " $(1) s $(<) $(@)" }})
end
--------------------------------------------------
diff --git a/docs/release/scripts/src/formats.lua b/docs/release/scripts/src/formats.lua
index 5afef69d522..d2c7ceda4a5 100644
--- a/docs/release/scripts/src/formats.lua
+++ b/docs/release/scripts/src/formats.lua
@@ -33,8 +33,6 @@ project "formats"
MAME_DIR .. "src/lib/formats/all.cpp",
MAME_DIR .. "src/lib/formats/all.h",
- MAME_DIR .. "src/lib/formats/ioprocs.cpp",
- MAME_DIR .. "src/lib/formats/ioprocs.h",
MAME_DIR .. "src/lib/formats/imageutl.cpp",
MAME_DIR .. "src/lib/formats/imageutl.h",
diff --git a/docs/release/scripts/src/lib.lua b/docs/release/scripts/src/lib.lua
index c943656ca14..c24bb015cd4 100644
--- a/docs/release/scripts/src/lib.lua
+++ b/docs/release/scripts/src/lib.lua
@@ -71,6 +71,12 @@ project "utils"
MAME_DIR .. "src/lib/util/hashing.h",
MAME_DIR .. "src/lib/util/huffman.cpp",
MAME_DIR .. "src/lib/util/huffman.h",
+ MAME_DIR .. "src/lib/util/ioprocs.cpp",
+ MAME_DIR .. "src/lib/util/ioprocs.h",
+ MAME_DIR .. "src/lib/util/ioprocsfill.h",
+ MAME_DIR .. "src/lib/util/ioprocsfilter.cpp",
+ MAME_DIR .. "src/lib/util/ioprocsfilter.h",
+ MAME_DIR .. "src/lib/util/ioprocsvec.h",
MAME_DIR .. "src/lib/util/jedparse.cpp",
MAME_DIR .. "src/lib/util/jedparse.h",
MAME_DIR .. "src/lib/util/md5.cpp",
@@ -85,6 +91,8 @@ project "utils"
MAME_DIR .. "src/lib/util/options.h",
MAME_DIR .. "src/lib/util/palette.cpp",
MAME_DIR .. "src/lib/util/palette.h",
+ MAME_DIR .. "src/lib/util/path.cpp",
+ MAME_DIR .. "src/lib/util/path.h",
MAME_DIR .. "src/lib/util/path_to_regex.cpp",
MAME_DIR .. "src/lib/util/path_to_regex.hpp",
MAME_DIR .. "src/lib/util/plaparse.cpp",
@@ -104,6 +112,7 @@ project "utils"
MAME_DIR .. "src/lib/util/unzip.cpp",
MAME_DIR .. "src/lib/util/unzip.h",
MAME_DIR .. "src/lib/util/un7z.cpp",
+ MAME_DIR .. "src/lib/util/utilfwd.h",
MAME_DIR .. "src/lib/util/vbiparse.cpp",
MAME_DIR .. "src/lib/util/vbiparse.h",
MAME_DIR .. "src/lib/util/vecstream.cpp",
diff --git a/docs/release/scripts/src/machine.lua b/docs/release/scripts/src/machine.lua
index 6e1280ac505..25b38f6ab78 100644
--- a/docs/release/scripts/src/machine.lua
+++ b/docs/release/scripts/src/machine.lua
@@ -826,6 +826,18 @@ end
---------------------------------------------------
--
+--@src/devices/machine/applepic.h,MACHINES["APPLEPIC"] = true
+---------------------------------------------------
+
+if (MACHINES["APPLEPIC"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/applepic.cpp",
+ MAME_DIR .. "src/devices/machine/applepic.h",
+ }
+end
+
+---------------------------------------------------
+--
--@src/devices/machine/at28c16.h,MACHINES["AT28C16"] = true
---------------------------------------------------
diff --git a/docs/release/scripts/src/osd/mac.lua b/docs/release/scripts/src/osd/mac.lua
index 2cc3e53c926..8a57b4ab4a3 100644
--- a/docs/release/scripts/src/osd/mac.lua
+++ b/docs/release/scripts/src/osd/mac.lua
@@ -166,7 +166,6 @@ project ("ocore_" .. _OPTIONS["osd"])
MAME_DIR .. "src/osd/modules/lib/osdlib_macosx.cpp",
MAME_DIR .. "src/osd/modules/lib/osdlib.h",
MAME_DIR .. "src/osd/modules/file/posixdir.cpp",
- MAME_DIR .. "src/osd/modules/file/posixdomain.cpp",
MAME_DIR .. "src/osd/modules/file/posixfile.cpp",
MAME_DIR .. "src/osd/modules/file/posixfile.h",
MAME_DIR .. "src/osd/modules/file/posixptty.cpp",
diff --git a/docs/release/scripts/src/osd/modules.lua b/docs/release/scripts/src/osd/modules.lua
index 3f9e1948c6e..7ee20732784 100644
--- a/docs/release/scripts/src/osd/modules.lua
+++ b/docs/release/scripts/src/osd/modules.lua
@@ -162,7 +162,6 @@ function osdmodulesbuild()
"__STDC_LIMIT_MACROS",
"__STDC_FORMAT_MACROS",
"__STDC_CONSTANT_MACROS",
- "IMGUI_DISABLE_OBSOLETE_FUNCTIONS",
}
files {
diff --git a/docs/release/scripts/src/osd/sdl.lua b/docs/release/scripts/src/osd/sdl.lua
index 37dfb221067..31dafbbeb20 100644
--- a/docs/release/scripts/src/osd/sdl.lua
+++ b/docs/release/scripts/src/osd/sdl.lua
@@ -482,7 +482,6 @@ project ("ocore_" .. _OPTIONS["osd"])
if BASE_TARGETOS=="unix" then
files {
MAME_DIR .. "src/osd/modules/file/posixdir.cpp",
- MAME_DIR .. "src/osd/modules/file/posixdomain.cpp",
MAME_DIR .. "src/osd/modules/file/posixfile.cpp",
MAME_DIR .. "src/osd/modules/file/posixfile.h",
MAME_DIR .. "src/osd/modules/file/posixptty.cpp",
diff --git a/docs/release/scripts/src/osd/windows.lua b/docs/release/scripts/src/osd/windows.lua
index aa6b0241fb9..cefe6234cf3 100644
--- a/docs/release/scripts/src/osd/windows.lua
+++ b/docs/release/scripts/src/osd/windows.lua
@@ -22,17 +22,6 @@ function maintargetosdoptions(_target,_subtarget)
configuration { }
- if _OPTIONS["DIRECTINPUT"] == "8" then
- links {
- "dinput8",
- }
- else
- links {
- "dinput",
- }
- end
-
-
if _OPTIONS["USE_SDL"] == "1" then
links {
"SDL.dll",
@@ -40,6 +29,7 @@ function maintargetosdoptions(_target,_subtarget)
end
links {
+ "dinput8",
"comctl32",
"comdlg32",
"psapi",
@@ -50,19 +40,6 @@ end
newoption {
- trigger = "DIRECTINPUT",
- description = "Minimum DirectInput version to support",
- allowed = {
- { "7", "Support DirectInput 7 or later" },
- { "8", "Support DirectInput 8 or later" },
- },
-}
-
-if not _OPTIONS["DIRECTINPUT"] then
- _OPTIONS["DIRECTINPUT"] = "8"
-end
-
-newoption {
trigger = "USE_SDL",
description = "Enable SDL sound output",
allowed = {
@@ -124,18 +101,9 @@ project ("osd_" .. _OPTIONS["osd"])
defines {
"DIRECT3D_VERSION=0x0900",
+ "DIRECTINPUT_VERSION=0x0800",
}
- if _OPTIONS["DIRECTINPUT"] == "8" then
- defines {
- "DIRECTINPUT_VERSION=0x0800",
- }
- else
- defines {
- "DIRECTINPUT_VERSION=0x0700",
- }
- end
-
includedirs {
MAME_DIR .. "src/emu",
MAME_DIR .. "src/devices", -- accessing imagedev from debugger
diff --git a/docs/release/scripts/target/hbmame/hbmame.lua b/docs/release/scripts/target/hbmame/hbmame.lua
index 0d301b0a506..d4af54f3190 100644
--- a/docs/release/scripts/target/hbmame/hbmame.lua
+++ b/docs/release/scripts/target/hbmame/hbmame.lua
@@ -359,6 +359,7 @@ files {
MAME_DIR .. "src/mame/machine/asteroid.cpp",
MAME_DIR .. "src/hbmame/drivers/atarig42.cpp",
MAME_DIR .. "src/mame/video/atarig42.cpp",
+ MAME_DIR .. "src/mame/machine/atariscom.cpp",
MAME_DIR .. "src/mame/machine/asic65.cpp",
MAME_DIR .. "src/mame/video/atarirle.cpp",
MAME_DIR .. "src/mame/audio/atarijsa.cpp",
diff --git a/docs/release/scripts/target/mame/arcade.lua b/docs/release/scripts/target/mame/arcade.lua
index be5c46c559c..6439c7b1941 100644
--- a/docs/release/scripts/target/mame/arcade.lua
+++ b/docs/release/scripts/target/mame/arcade.lua
@@ -150,6 +150,7 @@ CPUS["UPD78K"] = true
CPUS["KS0164"] = true
--CPUS["COPS1"] = true
CPUS["MEG"] = true
+CPUS["F2MC16"] = true
--------------------------------------------------
-- specify available sound cores
@@ -456,6 +457,7 @@ MACHINES["AM79C90"] = true
--MACHINES["AM9513"] = true
MACHINES["AM9517A"] = true
MACHINES["AMIGAFDC"] = true
+--MACHINES["APPLEPIC"] = true
MACHINES["AT_KEYBC"] = true
MACHINES["AT28C16"] = true
--MACHINES["AT28C64B"] = true
@@ -5059,6 +5061,7 @@ files {
MAME_DIR .. "src/mame/includes/oneshot.h",
MAME_DIR .. "src/mame/video/oneshot.cpp",
MAME_DIR .. "src/mame/drivers/onetwo.cpp",
+ MAME_DIR .. "src/mame/drivers/opercoin.cpp",
MAME_DIR .. "src/mame/drivers/othello.cpp",
MAME_DIR .. "src/mame/drivers/pachifev.cpp",
MAME_DIR .. "src/mame/drivers/pasha2.cpp",
@@ -5088,6 +5091,7 @@ files {
MAME_DIR .. "src/mame/drivers/pse.cpp",
MAME_DIR .. "src/mame/drivers/quizo.cpp",
MAME_DIR .. "src/mame/drivers/quizpun2.cpp",
+ MAME_DIR .. "src/mame/drivers/radikaldarts.cpp",
MAME_DIR .. "src/mame/drivers/rbmk.cpp",
MAME_DIR .. "src/mame/drivers/rcorsair.cpp",
MAME_DIR .. "src/mame/drivers/re900.cpp",
diff --git a/docs/release/scripts/target/mame/mess.lua b/docs/release/scripts/target/mame/mess.lua
index 4ef88975da0..66617814749 100644
--- a/docs/release/scripts/target/mame/mess.lua
+++ b/docs/release/scripts/target/mame/mess.lua
@@ -479,6 +479,7 @@ MACHINES["AM9513"] = true
MACHINES["AM9517A"] = true
MACHINES["AM9519"] = true
MACHINES["AMIGAFDC"] = true
+MACHINES["APPLEPIC"] = true
MACHINES["ARM_IOMD"] = true
MACHINES["AT_KEYBC"] = true
MACHINES["AT28C16"] = true
@@ -837,6 +838,7 @@ BUSES["AMIGA_KEYBOARD"] = true
BUSES["APF"] = true
BUSES["APRICOT_EXPANSION"] = true
BUSES["APRICOT_KEYBOARD"] = true
+BUSES["APRICOT_VIDEO"] = true
BUSES["AQUARIUS"] = true
BUSES["ARCADIA"] = true
BUSES["ASTROCADE"] = true
@@ -4424,6 +4426,8 @@ files {
MAME_DIR .. "src/mame/drivers/ymmu50.cpp",
MAME_DIR .. "src/mame/drivers/ymmu80.cpp",
MAME_DIR .. "src/mame/drivers/ymmu100.cpp",
+ MAME_DIR .. "src/mame/drivers/ympsr16.cpp",
+ MAME_DIR .. "src/mame/drivers/ympsr40.cpp",
MAME_DIR .. "src/mame/drivers/ympsr60.cpp",
MAME_DIR .. "src/mame/drivers/ympsr340.cpp",
MAME_DIR .. "src/mame/drivers/ymsy35.cpp",
@@ -4561,6 +4565,7 @@ files {
MAME_DIR .. "src/mame/drivers/gem_rp.cpp",
MAME_DIR .. "src/mame/drivers/gigatron.cpp",
MAME_DIR .. "src/mame/drivers/gimix.cpp",
+ MAME_DIR .. "src/mame/drivers/gm1000.cpp",
MAME_DIR .. "src/mame/drivers/gnat10.cpp",
MAME_DIR .. "src/mame/drivers/goupil.cpp",
MAME_DIR .. "src/mame/drivers/grfd2301.cpp",
@@ -4657,6 +4662,7 @@ files {
MAME_DIR .. "src/mame/drivers/ptcsol.cpp",
MAME_DIR .. "src/mame/drivers/pulsar.cpp",
MAME_DIR .. "src/mame/drivers/pv9234.cpp",
+ MAME_DIR .. "src/mame/drivers/pwp14.cpp",
MAME_DIR .. "src/mame/drivers/qtsbc.cpp",
MAME_DIR .. "src/mame/drivers/rd100.cpp",
MAME_DIR .. "src/mame/drivers/rvoice.cpp",
diff --git a/docs/release/src/devices/cpu/m68000/m68kcpu.cpp b/docs/release/src/devices/cpu/m68000/m68kcpu.cpp
index 52ad22d2b5d..99919858703 100644
--- a/docs/release/src/devices/cpu/m68000/m68kcpu.cpp
+++ b/docs/release/src/devices/cpu/m68000/m68kcpu.cpp
@@ -1683,7 +1683,6 @@ void m68000_base_device::define_state(void)
state_add(M68K_SR, "SR", m_iotemp).callimport().callexport().mask(m_sr_mask);
state_add(STATE_GENFLAGS, "GENFLAGS", m_iotemp).noshow().callimport().callexport().formatstr("%16s");
state_add(M68K_SP, "SP", m_dar[15]);
- state_add(STATE_GENSP, "GENSP", m_dar[15]).noshow();
state_add(M68K_USP, "USP", m_iotemp).callimport().callexport();
if (m_cpu_type & MASK_020_OR_LATER)
{
diff --git a/docs/release/src/devices/video/vector.cpp b/docs/release/src/devices/video/vector.cpp
index b344801dd9f..9f4a35f4bf5 100644
--- a/docs/release/src/devices/video/vector.cpp
+++ b/docs/release/src/devices/video/vector.cpp
@@ -108,7 +108,7 @@ void vector_device::add_point(int x, int y, rgb_t color, int intensity)
{
point *newpoint;
- intensity = std::max(0, std::min(255, intensity));
+ intensity = std::clamp(intensity, 0, 255);
m_min_intensity = intensity > 0 ? std::min(m_min_intensity, intensity) : m_min_intensity;
m_max_intensity = intensity > 0 ? std::max(m_max_intensity, intensity) : m_max_intensity;
@@ -119,7 +119,7 @@ void vector_device::add_point(int x, int y, rgb_t color, int intensity)
intensity -= (int)(intensity * random * vector_options::s_flicker);
- intensity = std::max(0, std::min(255, intensity));
+ intensity = std::clamp(intensity, 0, 255);
}
newpoint = &m_vector_list[m_vector_index];
diff --git a/docs/release/src/emu/romload.cpp b/docs/release/src/emu/romload.cpp
index 706f837b95b..97fa85b4487 100644
--- a/docs/release/src/emu/romload.cpp
+++ b/docs/release/src/emu/romload.cpp
@@ -101,15 +101,15 @@ std::vector<std::string> make_software_searchpath(software_list_device &swlist,
}
-chd_error do_open_disk(const emu_options &options, std::initializer_list<std::reference_wrapper<const std::vector<std::string> > > searchpath, const rom_entry *romp, chd_file &chd, std::function<const rom_entry * ()> next_parent)
+std::error_condition do_open_disk(const emu_options &options, std::initializer_list<std::reference_wrapper<const std::vector<std::string> > > searchpath, const rom_entry *romp, chd_file &chd, std::function<const rom_entry * ()> next_parent)
{
// hashes are fixed, but we might need to try multiple filenames
std::set<std::string> tried;
const util::hash_collection hashes(romp->hashdata());
std::string filename, fullpath;
const rom_entry *parent(nullptr);
- chd_error result(CHDERR_FILE_NOT_FOUND);
- while (romp && (CHDERR_NONE != result))
+ std::error_condition result(std::errc::no_such_file_or_directory);
+ while (romp && result)
{
filename = romp->name() + ".chd";
if (tried.insert(filename).second)
@@ -120,8 +120,8 @@ chd_error do_open_disk(const emu_options &options, std::initializer_list<std::re
{
imgfile.reset(new emu_file(options.media_path(), paths, OPEN_FLAG_READ));
imgfile->set_restrict_to_mediapath(1);
- const osd_file::error filerr(imgfile->open(filename, OPEN_FLAG_READ));
- if (osd_file::error::NONE == filerr)
+ const std::error_condition filerr(imgfile->open(filename, OPEN_FLAG_READ));
+ if (!filerr)
break;
else
imgfile.reset();
@@ -132,12 +132,12 @@ chd_error do_open_disk(const emu_options &options, std::initializer_list<std::re
{
fullpath = imgfile->fullpath();
imgfile.reset();
- result = chd.open(fullpath.c_str());
+ result = chd.open(fullpath);
}
}
// walk the parents looking for a CHD with the same hashes but a different name
- if (CHDERR_NONE != result)
+ if (result)
{
while (romp)
{
@@ -345,11 +345,11 @@ chd_file *rom_load_manager::get_disk_handle(std::string_view region)
file associated with the given region
-------------------------------------------------*/
-int rom_load_manager::set_disk_handle(std::string_view region, const char *fullpath)
+std::error_condition rom_load_manager::set_disk_handle(std::string_view region, const char *fullpath)
{
auto chd = std::make_unique<open_chd>(region);
auto err = chd->orig_chd().open(fullpath);
- if (err == CHDERR_NONE)
+ if (!err)
m_chd_list.push_back(std::move(chd));
return err;
}
@@ -439,7 +439,7 @@ void rom_load_manager::fill_random(u8 *base, u32 length)
for missing files
-------------------------------------------------*/
-void rom_load_manager::handle_missing_file(const rom_entry *romp, const std::vector<std::string> &tried_file_names, chd_error chderr)
+void rom_load_manager::handle_missing_file(const rom_entry *romp, const std::vector<std::string> &tried_file_names, std::error_condition chderr)
{
std::string tried;
if (!tried_file_names.empty())
@@ -453,12 +453,12 @@ void rom_load_manager::handle_missing_file(const rom_entry *romp, const std::vec
tried += ')';
}
- const bool is_chd(chderr != CHDERR_NONE);
+ const bool is_chd(chderr);
const std::string name(is_chd ? romp->name() + ".chd" : romp->name());
- const bool is_chd_error(is_chd && chderr != CHDERR_FILE_NOT_FOUND);
+ const bool is_chd_error(is_chd && chderr != std::errc::no_such_file_or_directory);
if (is_chd_error)
- m_errorstring.append(string_format("%s CHD ERROR: %s\n", name, chd_file::error_string(chderr)));
+ m_errorstring.append(string_format("%s CHD ERROR: %s\n", name, chderr.message()));
if (ROM_ISOPTIONAL(romp))
{
@@ -638,7 +638,7 @@ void rom_load_manager::region_post_process(memory_region *region, bool invert)
std::unique_ptr<emu_file> rom_load_manager::open_rom_file(std::initializer_list<std::reference_wrapper<const std::vector<std::string> > > searchpath, const rom_entry *romp, std::vector<std::string> &tried_file_names, bool from_list)
{
- osd_file::error filerr = osd_file::error::NOT_FOUND;
+ std::error_condition filerr = std::errc::no_such_file_or_directory;
u32 const romsize = rom_file_size(romp);
tried_file_names.clear();
@@ -664,14 +664,14 @@ std::unique_ptr<emu_file> rom_load_manager::open_rom_file(std::initializer_list<
m_romsloadedsize += romsize;
// return the result
- if (osd_file::error::NONE != filerr)
+ if (filerr)
return nullptr;
else
return result;
}
-std::unique_ptr<emu_file> rom_load_manager::open_rom_file(const std::vector<std::string> &paths, std::vector<std::string> &tried, bool has_crc, u32 crc, std::string_view name, osd_file::error &filerr)
+std::unique_ptr<emu_file> rom_load_manager::open_rom_file(const std::vector<std::string> &paths, std::vector<std::string> &tried, bool has_crc, u32 crc, std::string_view name, std::error_condition &filerr)
{
// record the set names we search
tried.insert(tried.end(), paths.begin(), paths.end());
@@ -685,7 +685,7 @@ std::unique_ptr<emu_file> rom_load_manager::open_rom_file(const std::vector<std:
filerr = result->open(name);
// don't return anything if unsuccessful
- if (osd_file::error::NONE != filerr)
+ if (filerr)
return nullptr;
else
return result;
@@ -939,7 +939,7 @@ void rom_load_manager::process_rom_entries(std::initializer_list<std::reference_
{
file = open_rom_file(searchpath, romp, tried_file_names, from_list);
if (!file)
- handle_missing_file(romp, tried_file_names, CHDERR_NONE);
+ handle_missing_file(romp, tried_file_names, std::error_condition());
}
// loop until we run out of reloads
@@ -1000,44 +1000,44 @@ void rom_load_manager::process_rom_entries(std::initializer_list<std::reference_
open_disk_diff - open a DISK diff file
-------------------------------------------------*/
-chd_error rom_load_manager::open_disk_diff(emu_options &options, const rom_entry *romp, chd_file &source, chd_file &diff_chd)
+std::error_condition rom_load_manager::open_disk_diff(emu_options &options, const rom_entry *romp, chd_file &source, chd_file &diff_chd)
{
// TODO: use system name and/or software list name in the path - the current setup doesn't scale
std::string fname = romp->name() + ".dif";
- /* try to open the diff */
+ // try to open the diff
LOG("Opening differencing image file: %s\n", fname.c_str());
emu_file diff_file(options.diff_directory(), OPEN_FLAG_READ | OPEN_FLAG_WRITE);
- osd_file::error filerr = diff_file.open(fname);
- if (filerr == osd_file::error::NONE)
+ std::error_condition filerr = diff_file.open(fname);
+ if (!filerr)
{
std::string fullpath(diff_file.fullpath());
diff_file.close();
LOG("Opening differencing image file: %s\n", fullpath.c_str());
- return diff_chd.open(fullpath.c_str(), true, &source);
+ return diff_chd.open(fullpath, true, &source);
}
- /* didn't work; try creating it instead */
+ // didn't work; try creating it instead
LOG("Creating differencing image: %s\n", fname.c_str());
diff_file.set_openflags(OPEN_FLAG_READ | OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
filerr = diff_file.open(fname);
- if (filerr == osd_file::error::NONE)
+ if (!filerr)
{
std::string fullpath(diff_file.fullpath());
diff_file.close();
- /* create the CHD */
+ // create the CHD
LOG("Creating differencing image file: %s\n", fullpath.c_str());
chd_codec_type compression[4] = { CHD_CODEC_NONE };
- chd_error err = diff_chd.create(fullpath.c_str(), source.logical_bytes(), source.hunk_bytes(), compression, source);
- if (err != CHDERR_NONE)
+ std::error_condition err = diff_chd.create(fullpath, source.logical_bytes(), source.hunk_bytes(), compression, source);
+ if (err)
return err;
return diff_chd.clone_all_metadata(source);
}
- return CHDERR_FILE_NOT_FOUND;
+ return std::errc::no_such_file_or_directory;
}
@@ -1059,7 +1059,7 @@ void rom_load_manager::process_disk_entries(std::initializer_list<std::reference
if (ROMENTRY_ISFILE(romp))
{
auto chd = std::make_unique<open_chd>(regiontag);
- chd_error err;
+ std::error_condition err;
/* make the filename of the source */
const std::string filename = romp->name() + ".chd";
@@ -1068,7 +1068,7 @@ void rom_load_manager::process_disk_entries(std::initializer_list<std::reference
// FIXME: we've lost the ability to search parents here
LOG("Opening disk image: %s\n", filename.c_str());
err = do_open_disk(machine().options(), searchpath, romp, chd->orig_chd(), next_parent);
- if (err != CHDERR_NONE)
+ if (err)
{
handle_missing_file(romp, std::vector<std::string>(), err);
chd = nullptr;
@@ -1098,9 +1098,9 @@ void rom_load_manager::process_disk_entries(std::initializer_list<std::reference
{
/* try to open or create the diff */
err = open_disk_diff(machine().options(), romp, chd->orig_chd(), chd->diff_chd());
- if (err != CHDERR_NONE)
+ if (err)
{
- m_errorstring.append(string_format("%s DIFF CHD ERROR: %s\n", filename, chd_file::error_string(err)));
+ m_errorstring.append(string_format("%s DIFF CHD ERROR: %s\n", filename, err.message()));
m_errors++;
chd = nullptr;
continue;
@@ -1132,7 +1132,7 @@ std::vector<std::string> rom_load_manager::get_software_searchpath(software_list
device
-------------------------------------------------*/
-chd_error rom_load_manager::open_disk_image(const emu_options &options, const device_t &device, const rom_entry *romp, chd_file &image_chd)
+std::error_condition rom_load_manager::open_disk_image(const emu_options &options, const device_t &device, const rom_entry *romp, chd_file &image_chd)
{
const std::vector<std::string> searchpath(device.searchpath());
@@ -1151,7 +1151,7 @@ chd_error rom_load_manager::open_disk_image(const emu_options &options, const de
software item
-------------------------------------------------*/
-chd_error rom_load_manager::open_disk_image(const emu_options &options, software_list_device &swlist, const software_info &swinfo, const rom_entry *romp, chd_file &image_chd)
+std::error_condition rom_load_manager::open_disk_image(const emu_options &options, software_list_device &swlist, const software_info &swinfo, const rom_entry *romp, chd_file &image_chd)
{
std::vector<software_info const *> parents;
std::vector<std::string> searchpath = make_software_searchpath(swlist, swinfo, parents);
diff --git a/docs/release/src/emu/video.cpp b/docs/release/src/emu/video.cpp
index b6dada1c0b5..56f877ec8fa 100644
--- a/docs/release/src/emu/video.cpp
+++ b/docs/release/src/emu/video.cpp
@@ -359,8 +359,8 @@ void video_manager::save_active_screen_snapshots()
if (machine().render().is_live(screen))
{
emu_file file(machine().options().snapshot_directory(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
- osd_file::error filerr = open_next(file, "png");
- if (filerr == osd_file::error::NONE)
+ std::error_condition const filerr = open_next(file, "png");
+ if (!filerr)
save_snapshot(&screen, file);
}
}
@@ -368,8 +368,8 @@ void video_manager::save_active_screen_snapshots()
{
// otherwise, just write a single snapshot
emu_file file(machine().options().snapshot_directory(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
- osd_file::error filerr = open_next(file, "png");
- if (filerr == osd_file::error::NONE)
+ std::error_condition const filerr = open_next(file, "png");
+ if (!filerr)
save_snapshot(nullptr, file);
}
}
@@ -431,12 +431,12 @@ void video_manager::begin_recording_screen(const std::string &filename, uint32_t
OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
// and open the actual file
- osd_file::error filerr = filename.empty()
+ std::error_condition filerr = filename.empty()
? open_next(*movie_file, extension)
: movie_file->open(filename);
- if (filerr != osd_file::error::NONE)
+ if (filerr)
{
- osd_printf_error("Error creating movie, osd_file::error=%d\n", int(filerr));
+ osd_printf_error("Error creating movie, %s:%d %s\n", filerr.category().name(), filerr.value(), filerr.message());
return;
}
@@ -1007,8 +1007,8 @@ void video_manager::recompute_speed(const attotime &emutime)
{
// create a final screenshot
emu_file file(machine().options().snapshot_directory(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
- osd_file::error filerr = file.open(machine().basename() + PATH_SEPARATOR "final.png");
- if (filerr == osd_file::error::NONE)
+ std::error_condition filerr = file.open(machine().basename() + PATH_SEPARATOR "final.png");
+ if (!filerr)
save_snapshot(nullptr, file);
//printf("Scheduled exit at %f\n", emutime.as_double());
@@ -1096,7 +1096,7 @@ void video_manager::pixels(u32 *buffer)
// scheme
//-------------------------------------------------
-osd_file::error video_manager::open_next(emu_file &file, const char *extension, uint32_t added_index)
+std::error_condition video_manager::open_next(emu_file &file, const char *extension, uint32_t added_index)
{
u32 origflags = file.openflags();
@@ -1205,11 +1205,9 @@ osd_file::error video_manager::open_next(emu_file &file, const char *extension,
strreplace(fname, "%i", string_format("%04d", seq));
// try to open the file; stop when we fail
- osd_file::error filerr = file.open(fname);
- if (filerr == osd_file::error::NOT_FOUND)
- {
+ std::error_condition const filerr = file.open(fname);
+ if (std::errc::no_such_file_or_directory == filerr)
break;
- }
}
}
diff --git a/docs/release/src/emu/video.h b/docs/release/src/emu/video.h
index 98b91713a53..4ff0035a5c4 100644
--- a/docs/release/src/emu/video.h
+++ b/docs/release/src/emu/video.h
@@ -19,6 +19,8 @@
#include "recording.h"
+#include <system_error>
+
//**************************************************************************
// CONSTANTS
@@ -62,7 +64,7 @@ public:
// misc
void toggle_record_movie(movie_recording::format format);
- osd_file::error open_next(emu_file &file, const char *extension, uint32_t index = 0);
+ std::error_condition open_next(emu_file &file, const char *extension, uint32_t index = 0);
void compute_snapshot_size(s32 &width, s32 &height);
void pixels(u32 *buffer);
diff --git a/docs/release/src/frontend/mame/audit.cpp b/docs/release/src/frontend/mame/audit.cpp
index d6579c62d8a..6f1d52f2f0f 100644
--- a/docs/release/src/frontend/mame/audit.cpp
+++ b/docs/release/src/frontend/mame/audit.cpp
@@ -425,11 +425,11 @@ media_auditor::summary media_auditor::audit_samples()
while (path.next(curpath, samplename))
{
// attempt to access the file (.flac) or (.wav)
- osd_file::error filerr = file.open(curpath + ".flac");
- if (filerr != osd_file::error::NONE)
+ std::error_condition filerr = file.open(curpath + ".flac");
+ if (filerr)
filerr = file.open(curpath + ".wav");
- if (filerr == osd_file::error::NONE)
+ if (!filerr)
{
record.set_status(audit_status::GOOD, audit_substatus::GOOD);
found++;
@@ -589,14 +589,14 @@ media_auditor::audit_record &media_auditor::audit_one_rom(const std::vector<std:
file.set_restrict_to_mediapath(1);
// open the file if we can
- osd_file::error filerr;
+ std::error_condition filerr;
if (has_crc)
filerr = file.open(record.name(), crc);
else
filerr = file.open(record.name());
// if it worked, get the actual length and hashes, then stop
- if (filerr == osd_file::error::NONE)
+ if (!filerr)
record.set_actual(file.hashes(m_validation), file.size());
// compute the final status
@@ -617,10 +617,10 @@ media_auditor::audit_record &media_auditor::audit_one_disk(const rom_entry *rom,
// open the disk
chd_file source;
- const chd_error err = rom_load_manager::open_disk_image(m_enumerator.options(), std::forward<T>(args)..., rom, source);
+ const std::error_condition err = rom_load_manager::open_disk_image(m_enumerator.options(), std::forward<T>(args)..., rom, source);
// if we succeeded, get the hashes
- if (err == CHDERR_NONE)
+ if (!err)
{
util::hash_collection hashes;
@@ -633,7 +633,7 @@ media_auditor::audit_record &media_auditor::audit_one_disk(const rom_entry *rom,
}
// compute the final status
- compute_status(record, rom, err == CHDERR_NONE);
+ compute_status(record, rom, !err);
return record;
}
diff --git a/docs/release/src/frontend/mame/clifront.cpp b/docs/release/src/frontend/mame/clifront.cpp
index fd8b6463012..f7c0db3e1dd 100644
--- a/docs/release/src/frontend/mame/clifront.cpp
+++ b/docs/release/src/frontend/mame/clifront.cpp
@@ -1681,7 +1681,7 @@ void cli_frontend::execute_commands(std::string_view exename)
{
// attempt to open the output file
emu_file file(OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
- if (file.open(std::string(emulator_info::get_configname()) + ".ini") != osd_file::error::NONE)
+ if (file.open(std::string(emulator_info::get_configname()) + ".ini"))
throw emu_fatalerror("Unable to create file %s.ini\n",emulator_info::get_configname());
// generate the updated INI
@@ -1689,7 +1689,7 @@ void cli_frontend::execute_commands(std::string_view exename)
ui_options ui_opts;
emu_file file_ui(OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
- if (file_ui.open("ui.ini") != osd_file::error::NONE)
+ if (file_ui.open("ui.ini"))
throw emu_fatalerror("Unable to create file ui.ini\n");
// generate the updated INI
@@ -1704,7 +1704,7 @@ void cli_frontend::execute_commands(std::string_view exename)
plugin_opts.scan_directory(pluginpath, true);
}
emu_file file_plugin(OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
- if (file_plugin.open("plugin.ini") != osd_file::error::NONE)
+ if (file_plugin.open("plugin.ini"))
throw emu_fatalerror("Unable to create file plugin.ini\n");
// generate the updated INI
diff --git a/docs/release/src/frontend/mame/language.cpp b/docs/release/src/frontend/mame/language.cpp
index 6c0a8954384..d68ba282087 100644
--- a/docs/release/src/frontend/mame/language.cpp
+++ b/docs/release/src/frontend/mame/language.cpp
@@ -72,11 +72,11 @@ void load_translation(emu_options &m_options)
// MESSUI: See if language file exists. If not, try English, see if that exists. If not, use inbuilt default.
emu_file file(m_options.language_path(), OPEN_FLAG_READ);
- if (file.open(name + PATH_SEPARATOR "strings.mo") != osd_file::error::NONE)
+ if (file.open(name + PATH_SEPARATOR "strings.mo"))
{
osd_printf_verbose("Error opening translation file %s\n", name);
name = "English";
- if (file.open(name + PATH_SEPARATOR "strings.mo") != osd_file::error::NONE)
+ if (file.open(name + PATH_SEPARATOR "strings.mo"))
{
osd_printf_verbose("Error opening translation file %s\n", name);
return;
diff --git a/docs/release/src/frontend/mame/mameopts.cpp b/docs/release/src/frontend/mame/mameopts.cpp
index 0e6c28da23d..a1d370ddb74 100644
--- a/docs/release/src/frontend/mame/mameopts.cpp
+++ b/docs/release/src/frontend/mame/mameopts.cpp
@@ -130,8 +130,8 @@ void mame_options::parse_one_ini(emu_options &options, const char *basename, int
// open the file; if we fail, that's ok
emu_file file(options.ini_path(), OPEN_FLAG_READ);
osd_printf_verbose("Attempting load of %s.ini\n", basename);
- osd_file::error filerr = file.open(std::string(basename) + ".ini");
- if (filerr != osd_file::error::NONE)
+ std::error_condition const filerr = file.open(std::string(basename) + ".ini");
+ if (filerr)
return;
// parse the file
diff --git a/docs/release/src/frontend/mame/ui/inifile.cpp b/docs/release/src/frontend/mame/ui/inifile.cpp
index 90d9f1213a8..9e43de79623 100644
--- a/docs/release/src/frontend/mame/ui/inifile.cpp
+++ b/docs/release/src/frontend/mame/ui/inifile.cpp
@@ -45,7 +45,7 @@ inifile_manager::inifile_manager(ui_options &options)
if (core_filename_ends_with(name, ".ini"))
{
emu_file file(m_options.categoryini_path(), OPEN_FLAG_READ);
- if (file.open(name) == osd_file::error::NONE)
+ if (!file.open(name))
{
init_category(std::move(name), file);
file.close();
@@ -224,7 +224,7 @@ favorite_manager::favorite_manager(ui_options &options)
, m_need_sort(true)
{
emu_file file(m_options.ui_path(), OPEN_FLAG_READ);
- if (file.open(FAVORITE_FILENAME) == osd_file::error::NONE)
+ if (!file.open(FAVORITE_FILENAME))
{
char readbuf[1024];
file.gets(readbuf, 1024);
@@ -545,7 +545,7 @@ void favorite_manager::save_favorites()
{
// attempt to open the output file
emu_file file(m_options.ui_path(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
- if (file.open(FAVORITE_FILENAME) == osd_file::error::NONE)
+ if (!file.open(FAVORITE_FILENAME))
{
if (m_favorites.empty())
{
diff --git a/docs/release/src/hbmame/drivers/atarig42.cpp b/docs/release/src/hbmame/drivers/atarig42.cpp
index e8f1376f299..08faa237818 100644
--- a/docs/release/src/hbmame/drivers/atarig42.cpp
+++ b/docs/release/src/hbmame/drivers/atarig42.cpp
@@ -3,7 +3,7 @@
#include "../mame/drivers/atarig42.cpp"
-
+#if 0
class dangerex_state : public atarig42_0x400_state
{
public:
@@ -123,4 +123,6 @@ void dangerex_state::init_dangerex()
GAME( 1992, dangerex, 0, atarig42_0x400, dangerex, dangerex_state, init_dangerex, ROT0, "Atari Games", "Danger Express (prototype)", 0 )
+#endif
+
diff --git a/docs/release/src/hbmame/drivers/bublbobl.cpp b/docs/release/src/hbmame/drivers/bublbobl.cpp
index 2049f770f21..ae41104af0f 100644
--- a/docs/release/src/hbmame/drivers/bublbobl.cpp
+++ b/docs/release/src/hbmame/drivers/bublbobl.cpp
@@ -216,7 +216,28 @@ ROM_START( bbredux3 )
ROM_LOAD( "pal16l8.u4", 0x0400, 0x0104, CRC(077d20a8) SHA1(8e568ffd6f66c3dd61708dd0f3be9c2ed488ae4b) )
ROM_END
-// issues since 2017-08-06: music keeps dropping out, reboots if you press ctrl instead of 1 at level select screen
+class bublbobl_hbmame : public bublbobl_state
+{
+public:
+ bublbobl_hbmame(const machine_config &mconfig, device_type type, const char *tag)
+ : bublbobl_state(mconfig, type, tag)
+ { }
+
+ void sboblboblh(machine_config &config);
+
+private:
+};
+
+void bublbobl_hbmame::sboblboblh(machine_config &config)
+{
+ boblbobl(config);
+
+ config.device_remove("watchdog");
+ WATCHDOG_TIMER(config, "watchdog").set_vblank_count("screen", 1280); // stop it rebooting in the level select screen
+}
+
+
+// issues since 2017-08-06: music keeps dropping out
ROM_START( sboblboblh )
ROM_REGION( 0x30000, "maincpu", 0 )
ROM_LOAD( "bb3.u28", 0x00000, 0x08000, CRC(c23cd704) SHA1(a389ecc8d55d1b0c915fd3814d93338b9e402701) )
@@ -351,7 +372,7 @@ GAME( 2000, bbhackv1, bublbobl, bub68705, bublbobl, bub68705_state, init_commo
GAME( 2013, bbredux1, bublbobl, boblbobl, boblbobl, bublbobl_state, init_common, ROT0, "Punji", "Bobble Bobble Redux (Level Skip)", MACHINE_SUPPORTS_SAVE )
GAME( 2013, bbredux2, bublbobl, boblbobl, boblbobl, bublbobl_state, init_common, ROT0, "Punji", "Bobble Bobble Redux (Game Continue)", MACHINE_SUPPORTS_SAVE )
GAME( 2013, bbredux3, bublbobl, boblbobl, boblbobl, bublbobl_state, init_common, ROT0, "Punji", "Bobble Bobble Redux (High Score)", MACHINE_SUPPORTS_SAVE )
-GAME( 19??, sboblboblh, bublbobl, boblbobl, boblbobl, bublbobl_state, init_common, ROT0, "hack", "Super Bobble Bobble (Level Select)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 19??, sboblboblh, bublbobl, sboblboblh, boblbobl, bublbobl_hbmame, init_common, ROT0, "hack", "Super Bobble Bobble (Level Select)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME( 2007, bublbobf, bublbobl, bublbobl, bublbobl, bublbobl_state, init_common, ROT0, "Arkatrad", "Bubble Bobble (French)", MACHINE_SUPPORTS_SAVE )
GAME( 1986, bublboblu, bublbobl, bublbobl, bublbobl, bublbobl_state, init_common, ROT0, "bootleg", "Bubble Bobble (Ultra Version, Hack)", MACHINE_SUPPORTS_SAVE )
GAME( 1986, bub68705a, bublbobl, bub68705, bublbobl, bub68705_state, init_common, ROT0, "bootleg", "Bubble Bobble (Bootleg with 68705, set 2)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/midwunit.cpp b/docs/release/src/hbmame/drivers/midwunit.cpp
index ccda462e151..912acd111a5 100644
--- a/docs/release/src/hbmame/drivers/midwunit.cpp
+++ b/docs/release/src/hbmame/drivers/midwunit.cpp
@@ -1672,6 +1672,144 @@ ROM_START( umk3uc20210423 ) // date from site
ROM_LOAD32_BYTE( "uc20181023.u110", 0x1400003, 0x100000, CRC(88f78828) SHA1(95f83c2f3d7026c2f592bb5de3142613d2a7e6ce) )
ROM_END
+ROM_START( umk3uc20210430 ) // date on screen, FB/NEO version
+ ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "l2.0_mortal_kombat_3_u2_ultimate.u2", 0x000000, 0x100000, CRC(3838cfe5) SHA1(e3d2901f3bae1362742fc6ee0aa31c9f63b4dfa3) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u3_music_spch.u3", 0x200000, 0x100000, CRC(856fe411) SHA1(6165ebecfce7500e948d84492ffa19eed7f47091) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u4_music_spch.u4", 0x400000, 0x100000, CRC(428a406f) SHA1(e70ec83cd054de0da1e178720ed0035b8887f797) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u5_music_spch.u5", 0x600000, 0x100000, CRC(3b98a09f) SHA1(edf1d02a56dcf3349e6b4bb4097acfe7592305f4) )
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "uc20210430.u54", 0x00000, 0x80000, CRC(26707d48) SHA1(fbe89901e856f8ea2f261df44ec20f956b530d29) )
+ ROM_LOAD16_BYTE( "uc20210430.u63", 0x00001, 0x80000, CRC(57f16a4a) SHA1(ec9a86b32b61cf3ecdb1a23c264292ef3abb9b8a) )
+
+ ROM_REGION( 0x1009, "serial_security:pic", 0 )
+ ROM_LOAD( "463_mk3_ultimate.u64", 0x0000, 0x1009, CRC(4f425218) SHA1(7f26045ed2c9ca94fadcb673ce10f28208aa720e) )
+
+ ROM_REGION( 0x2400000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "uc20181023.u133", 0x0000000, 0x100000, CRC(62c6f8ab) SHA1(cfe77e21cb25b4513411658051b849e3c0dd728c) )
+ ROM_LOAD32_BYTE( "uc20181023.u132", 0x0000001, 0x100000, CRC(87d977dc) SHA1(3bd6ded7c212621c3f45e29fa90a19b1c7abaac6) )
+ ROM_LOAD32_BYTE( "uc20181023.u131", 0x0000002, 0x100000, CRC(483cbc7b) SHA1(39d03642ea62f8623b76ecf084a390db7c366dcd) )
+ ROM_LOAD32_BYTE( "uc20181023.u130", 0x0000003, 0x100000, CRC(ecf63628) SHA1(3efeda0a59f110e6ab17247b1fed7965291ec885) )
+
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u129_game_rom.u129", 0x0400000, 0x100000, CRC(a8b41803) SHA1(9697e35e8bb51d6d36b1d7ae47377b446e57682f) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u128_game_rom.u128", 0x0400001, 0x100000, CRC(b410d72f) SHA1(ac5c1c6f744186540f4ab100d9bd4ce6007e600b) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u127_game_rom.u127", 0x0400002, 0x100000, CRC(bd985be7) SHA1(f5183abea2e5eb2c2c8cefa72c9ed321679f5128) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u126_game_rom.u126", 0x0400003, 0x100000, CRC(e7c32cf4) SHA1(94ea7b2eed7dae66f5dd676c20d6b360140e3e0e) )
+
+ ROM_LOAD32_BYTE( "uc20181023.u125", 0x0800000, 0x100000, CRC(78e8b9e5) SHA1(9a5f87e896c023b70b74a40c4fcb82e46cd8b1cb) )
+ ROM_LOAD32_BYTE( "uc20181023.u124", 0x0800001, 0x100000, CRC(1137536c) SHA1(8aee7855a454eeb68e51205ba47e94a0a2915ee3) )
+ ROM_LOAD32_BYTE( "uc20181023.u123", 0x0800002, 0x100000, CRC(6a65e954) SHA1(b04e64f361500093450a1a648dad13412282bda1) )
+ ROM_LOAD32_BYTE( "uc20181023.u122", 0x0800003, 0x100000, CRC(e6274718) SHA1(66bc57f4e05af9b27caa89fb0a3bd5aef3892117) )
+
+ ROM_LOAD32_BYTE( "uc20200506.u121", 0x0c00000, 0x100000, CRC(efd4084c) SHA1(f8ac8227443abcc313c358c4dbb34ad896ad7b70) )
+ ROM_LOAD32_BYTE( "uc20200506.u120", 0x0c00001, 0x100000, CRC(42a6c0e6) SHA1(853dce49454a86745ec4034130d6720457d703a1) )
+ ROM_LOAD32_BYTE( "uc20200506.u119", 0x0c00002, 0x100000, CRC(948d4aa7) SHA1(e506327edcba86cb56d8ecb787e75babf4019a71) )
+ ROM_LOAD32_BYTE( "uc20200506.u118", 0x0c00003, 0x100000, CRC(ab7ca588) SHA1(f7c539183d203ec9f48ee27ba8a9dc2efc4d5035) )
+
+ ROM_LOAD32_BYTE( "uc20210430.u117", 0x1000000, 0x100000, CRC(48a21834) SHA1(709d8420091049d36e51bbb711d3f64c6f19fe83) )
+ ROM_LOAD32_BYTE( "uc20210430.u116", 0x1000001, 0x100000, CRC(7a16b282) SHA1(6f63d45f43385b2f480ad929892413dba18f01a1) )
+ ROM_LOAD32_BYTE( "uc20210430.u115", 0x1000002, 0x100000, CRC(32195ef2) SHA1(3b3e00ce511d1b5b930bf0b1e03fb3a91b11b946) )
+ ROM_LOAD32_BYTE( "uc20210430.u114", 0x1000003, 0x100000, CRC(b15f13e1) SHA1(20a66871225f1f0903b215d692279d595bcfe412) )
+
+ ROM_LOAD32_BYTE( "uc20181023.u113", 0x1400000, 0x100000, CRC(b352019b) SHA1(fa4e902e5750cf542ac5b566caa27d790ceb2544) )
+ ROM_LOAD32_BYTE( "uc20181023.u112", 0x1400001, 0x100000, CRC(71143b7c) SHA1(5e97e54406002aa2297879a7b358f1d263593ffe) )
+ ROM_LOAD32_BYTE( "uc20181023.u111", 0x1400002, 0x100000, CRC(09821226) SHA1(740aa13569e59963ee87f32c39b558cb53f8a81d) )
+ ROM_LOAD32_BYTE( "uc20181023.u110", 0x1400003, 0x100000, CRC(88f78828) SHA1(95f83c2f3d7026c2f592bb5de3142613d2a7e6ce) )
+ROM_END
+
+ROM_START( umk3uk20210709 ) // date from site
+ ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "l2.0_mortal_kombat_3_u2_ultimate.u2", 0x000000, 0x100000, CRC(3838cfe5) SHA1(e3d2901f3bae1362742fc6ee0aa31c9f63b4dfa3) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u3_music_spch.u3", 0x200000, 0x100000, CRC(856fe411) SHA1(6165ebecfce7500e948d84492ffa19eed7f47091) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u4_music_spch.u4", 0x400000, 0x100000, CRC(428a406f) SHA1(e70ec83cd054de0da1e178720ed0035b8887f797) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u5_music_spch.u5", 0x600000, 0x100000, CRC(3b98a09f) SHA1(edf1d02a56dcf3349e6b4bb4097acfe7592305f4) )
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "uk20210709.u54", 0x00000, 0x80000, CRC(f8e2c5a8) SHA1(0e586d2ca7e92116b00c11e81b1cf8f1985e29fa) )
+ ROM_LOAD16_BYTE( "uk20210709.u63", 0x00001, 0x80000, CRC(3951aa40) SHA1(6ac7728cefedc42cd7f64a8cca5c33707c38677e) )
+
+ ROM_REGION( 0x1009, "serial_security:pic", 0 )
+ ROM_LOAD( "463_mk3_ultimate.u64", 0x0000, 0x1009, CRC(4f425218) SHA1(7f26045ed2c9ca94fadcb673ce10f28208aa720e) )
+
+ ROM_REGION( 0x2400000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "uc20181023.u133", 0x0000000, 0x100000, CRC(62c6f8ab) SHA1(cfe77e21cb25b4513411658051b849e3c0dd728c) )
+ ROM_LOAD32_BYTE( "uc20181023.u132", 0x0000001, 0x100000, CRC(87d977dc) SHA1(3bd6ded7c212621c3f45e29fa90a19b1c7abaac6) )
+ ROM_LOAD32_BYTE( "uc20181023.u131", 0x0000002, 0x100000, CRC(483cbc7b) SHA1(39d03642ea62f8623b76ecf084a390db7c366dcd) )
+ ROM_LOAD32_BYTE( "uc20181023.u130", 0x0000003, 0x100000, CRC(ecf63628) SHA1(3efeda0a59f110e6ab17247b1fed7965291ec885) )
+
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u129_game_rom.u129", 0x0400000, 0x100000, CRC(a8b41803) SHA1(9697e35e8bb51d6d36b1d7ae47377b446e57682f) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u128_game_rom.u128", 0x0400001, 0x100000, CRC(b410d72f) SHA1(ac5c1c6f744186540f4ab100d9bd4ce6007e600b) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u127_game_rom.u127", 0x0400002, 0x100000, CRC(bd985be7) SHA1(f5183abea2e5eb2c2c8cefa72c9ed321679f5128) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u126_game_rom.u126", 0x0400003, 0x100000, CRC(e7c32cf4) SHA1(94ea7b2eed7dae66f5dd676c20d6b360140e3e0e) )
+
+ ROM_LOAD32_BYTE( "uc20181023.u125", 0x0800000, 0x100000, CRC(78e8b9e5) SHA1(9a5f87e896c023b70b74a40c4fcb82e46cd8b1cb) )
+ ROM_LOAD32_BYTE( "uc20181023.u124", 0x0800001, 0x100000, CRC(1137536c) SHA1(8aee7855a454eeb68e51205ba47e94a0a2915ee3) )
+ ROM_LOAD32_BYTE( "uc20181023.u123", 0x0800002, 0x100000, CRC(6a65e954) SHA1(b04e64f361500093450a1a648dad13412282bda1) )
+ ROM_LOAD32_BYTE( "uc20181023.u122", 0x0800003, 0x100000, CRC(e6274718) SHA1(66bc57f4e05af9b27caa89fb0a3bd5aef3892117) )
+
+ ROM_LOAD32_BYTE( "uc20200506.u121", 0x0c00000, 0x100000, CRC(efd4084c) SHA1(f8ac8227443abcc313c358c4dbb34ad896ad7b70) )
+ ROM_LOAD32_BYTE( "uc20200506.u120", 0x0c00001, 0x100000, CRC(42a6c0e6) SHA1(853dce49454a86745ec4034130d6720457d703a1) )
+ ROM_LOAD32_BYTE( "uc20200506.u119", 0x0c00002, 0x100000, CRC(948d4aa7) SHA1(e506327edcba86cb56d8ecb787e75babf4019a71) )
+ ROM_LOAD32_BYTE( "uc20200506.u118", 0x0c00003, 0x100000, CRC(ab7ca588) SHA1(f7c539183d203ec9f48ee27ba8a9dc2efc4d5035) )
+
+ ROM_LOAD32_BYTE( "uk20210709.u117", 0x1000000, 0x100000, CRC(36739726) SHA1(f00b0e9edfb00ebe1c7f3d69fc64c9bbf11f415f) )
+ ROM_LOAD32_BYTE( "uk20210709.u116", 0x1000001, 0x100000, CRC(cdf4adac) SHA1(c31771eecbc0450169a9737746fe0f6215eb7d57) )
+ ROM_LOAD32_BYTE( "uk20210709.u115", 0x1000002, 0x100000, CRC(d800d13f) SHA1(be9a3148017adc395857c58d2fc706b77d8e85f4) )
+ ROM_LOAD32_BYTE( "uk20210709.u114", 0x1000003, 0x100000, CRC(9ec22b64) SHA1(3b32f58c8473dcb5dc647b3128e72fd471c85888) )
+
+ ROM_LOAD32_BYTE( "uc20181023.u113", 0x1400000, 0x100000, CRC(b352019b) SHA1(fa4e902e5750cf542ac5b566caa27d790ceb2544) )
+ ROM_LOAD32_BYTE( "uc20181023.u112", 0x1400001, 0x100000, CRC(71143b7c) SHA1(5e97e54406002aa2297879a7b358f1d263593ffe) )
+ ROM_LOAD32_BYTE( "uc20181023.u111", 0x1400002, 0x100000, CRC(09821226) SHA1(740aa13569e59963ee87f32c39b558cb53f8a81d) )
+ ROM_LOAD32_BYTE( "uc20181023.u110", 0x1400003, 0x100000, CRC(88f78828) SHA1(95f83c2f3d7026c2f592bb5de3142613d2a7e6ce) )
+ROM_END
+
+ROM_START( umk3uk20210727 ) // date from files
+ ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "l2.0_mortal_kombat_3_u2_ultimate.u2", 0x000000, 0x100000, CRC(3838cfe5) SHA1(e3d2901f3bae1362742fc6ee0aa31c9f63b4dfa3) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u3_music_spch.u3", 0x200000, 0x100000, CRC(856fe411) SHA1(6165ebecfce7500e948d84492ffa19eed7f47091) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u4_music_spch.u4", 0x400000, 0x100000, CRC(428a406f) SHA1(e70ec83cd054de0da1e178720ed0035b8887f797) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u5_music_spch.u5", 0x600000, 0x100000, CRC(3b98a09f) SHA1(edf1d02a56dcf3349e6b4bb4097acfe7592305f4) )
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "uk20210727.u54", 0x00000, 0x80000, CRC(bc509bce) SHA1(d34e638c21ae7e24ba7b30585691152009041a2f) )
+ ROM_LOAD16_BYTE( "uk20210727.u63", 0x00001, 0x80000, CRC(2f900a03) SHA1(916f57a46fae23d137641139c3a80b5cf2417224) )
+
+ ROM_REGION( 0x1009, "serial_security:pic", 0 )
+ ROM_LOAD( "463_mk3_ultimate.u64", 0x0000, 0x1009, CRC(4f425218) SHA1(7f26045ed2c9ca94fadcb673ce10f28208aa720e) )
+
+ ROM_REGION( 0x2400000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "uc20181023.u133", 0x0000000, 0x100000, CRC(62c6f8ab) SHA1(cfe77e21cb25b4513411658051b849e3c0dd728c) )
+ ROM_LOAD32_BYTE( "uc20181023.u132", 0x0000001, 0x100000, CRC(87d977dc) SHA1(3bd6ded7c212621c3f45e29fa90a19b1c7abaac6) )
+ ROM_LOAD32_BYTE( "uc20181023.u131", 0x0000002, 0x100000, CRC(483cbc7b) SHA1(39d03642ea62f8623b76ecf084a390db7c366dcd) )
+ ROM_LOAD32_BYTE( "uc20181023.u130", 0x0000003, 0x100000, CRC(ecf63628) SHA1(3efeda0a59f110e6ab17247b1fed7965291ec885) )
+
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u129_game_rom.u129", 0x0400000, 0x100000, CRC(a8b41803) SHA1(9697e35e8bb51d6d36b1d7ae47377b446e57682f) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u128_game_rom.u128", 0x0400001, 0x100000, CRC(b410d72f) SHA1(ac5c1c6f744186540f4ab100d9bd4ce6007e600b) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u127_game_rom.u127", 0x0400002, 0x100000, CRC(bd985be7) SHA1(f5183abea2e5eb2c2c8cefa72c9ed321679f5128) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u126_game_rom.u126", 0x0400003, 0x100000, CRC(e7c32cf4) SHA1(94ea7b2eed7dae66f5dd676c20d6b360140e3e0e) )
+
+ ROM_LOAD32_BYTE( "uc20181023.u125", 0x0800000, 0x100000, CRC(78e8b9e5) SHA1(9a5f87e896c023b70b74a40c4fcb82e46cd8b1cb) )
+ ROM_LOAD32_BYTE( "uc20181023.u124", 0x0800001, 0x100000, CRC(1137536c) SHA1(8aee7855a454eeb68e51205ba47e94a0a2915ee3) )
+ ROM_LOAD32_BYTE( "uc20181023.u123", 0x0800002, 0x100000, CRC(6a65e954) SHA1(b04e64f361500093450a1a648dad13412282bda1) )
+ ROM_LOAD32_BYTE( "uc20181023.u122", 0x0800003, 0x100000, CRC(e6274718) SHA1(66bc57f4e05af9b27caa89fb0a3bd5aef3892117) )
+
+ ROM_LOAD32_BYTE( "uc20200506.u121", 0x0c00000, 0x100000, CRC(efd4084c) SHA1(f8ac8227443abcc313c358c4dbb34ad896ad7b70) )
+ ROM_LOAD32_BYTE( "uc20200506.u120", 0x0c00001, 0x100000, CRC(42a6c0e6) SHA1(853dce49454a86745ec4034130d6720457d703a1) )
+ ROM_LOAD32_BYTE( "uc20200506.u119", 0x0c00002, 0x100000, CRC(948d4aa7) SHA1(e506327edcba86cb56d8ecb787e75babf4019a71) )
+ ROM_LOAD32_BYTE( "uc20200506.u118", 0x0c00003, 0x100000, CRC(ab7ca588) SHA1(f7c539183d203ec9f48ee27ba8a9dc2efc4d5035) )
+
+ ROM_LOAD32_BYTE( "uk20210709.u117", 0x1000000, 0x100000, CRC(36739726) SHA1(f00b0e9edfb00ebe1c7f3d69fc64c9bbf11f415f) )
+ ROM_LOAD32_BYTE( "uk20210709.u116", 0x1000001, 0x100000, CRC(cdf4adac) SHA1(c31771eecbc0450169a9737746fe0f6215eb7d57) )
+ ROM_LOAD32_BYTE( "uk20210709.u115", 0x1000002, 0x100000, CRC(d800d13f) SHA1(be9a3148017adc395857c58d2fc706b77d8e85f4) )
+ ROM_LOAD32_BYTE( "uk20210709.u114", 0x1000003, 0x100000, CRC(9ec22b64) SHA1(3b32f58c8473dcb5dc647b3128e72fd471c85888) )
+
+ ROM_LOAD32_BYTE( "uc20181023.u113", 0x1400000, 0x100000, CRC(b352019b) SHA1(fa4e902e5750cf542ac5b566caa27d790ceb2544) )
+ ROM_LOAD32_BYTE( "uc20181023.u112", 0x1400001, 0x100000, CRC(71143b7c) SHA1(5e97e54406002aa2297879a7b358f1d263593ffe) )
+ ROM_LOAD32_BYTE( "uc20181023.u111", 0x1400002, 0x100000, CRC(09821226) SHA1(740aa13569e59963ee87f32c39b558cb53f8a81d) )
+ ROM_LOAD32_BYTE( "uc20181023.u110", 0x1400003, 0x100000, CRC(88f78828) SHA1(95f83c2f3d7026c2f592bb5de3142613d2a7e6ce) )
+ROM_END
+
ROM_START( umk3tm20180120 )
ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF )
ROM_LOAD16_BYTE( "l2.0_mortal_kombat_3_u2_ultimate.u2", 0x000000, 0x100000, CRC(3838cfe5) SHA1(e3d2901f3bae1362742fc6ee0aa31c9f63b4dfa3) )
@@ -1843,6 +1981,9 @@ GAME( 2021, umk3uc20210228, umk3, wunit_picemu, mk3, midwunit_state, init_umk3,
GAME( 2021, umk3uc20210304, umk3, wunit_picemu, mk3, midwunit_state, init_umk3, ROT0, "TEAM UMK 3", "Ultimate Mortal Kombat 3 (Ultimate Cup Edition 2021-03-04)", MACHINE_SUPPORTS_SAVE )
GAME( 2021, umk3uc20210401, umk3, wunit_picemu, mk3, midwunit_state, init_umk3, ROT0, "TEAM UMK 3", "Ultimate Mortal Kombat 3 (Ultimate Cup Edition 2021-04-01)", MACHINE_SUPPORTS_SAVE )
GAME( 2021, umk3uc20210423, umk3, wunit_picemu, mk3, midwunit_state, init_umk3, ROT0, "TEAM UMK 3", "Ultimate Mortal Kombat 3 (Ultimate Cup Edition 2021-04-23)", MACHINE_SUPPORTS_SAVE )
+GAME( 2021, umk3uc20210430, umk3, wunit_picemu, mk3, midwunit_state, init_umk3, ROT0, "TEAM UMK 3", "Ultimate Mortal Kombat 3 (Ultimate Cup Edition 2021-04-30)", MACHINE_SUPPORTS_SAVE )
+GAME( 2021, umk3uk20210709, umk3, wunit_picemu, mk3, midwunit_state, init_umk3, ROT0, "TEAM UMK 3", "Ultimate Mortal Kombat 3 (UC Edition 2021-07-09)", MACHINE_SUPPORTS_SAVE )
+GAME( 2021, umk3uk20210727, umk3, wunit_picemu, mk3, midwunit_state, init_umk3, ROT0, "TEAM UMK 3", "Ultimate Mortal Kombat 3 (UC Edition 2021-07-27)", MACHINE_SUPPORTS_SAVE )
GAME( 2018, umk3tm20180120, umk3, wunit_picemu, mk3, midwunit_state, init_umk3, ROT0, "TEAM UMK 3", "Ultimate Mortal Kombat 3 (Team Edition 2018-01-20)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
GAME( 2019, umk3tm20190417, umk3, wunit_picemu, mk3, midwunit_state, init_umk3, ROT0, "TEAM UMK 3", "Ultimate Mortal Kombat 3 (Team Edition 2 2019-04-17)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
GAME( 2019, umk3plus20190921, umk3, wunit_picemu, mk3, midwunit_state, init_umk3, ROT0, "Mortalkombatplus", "Ultimate Mortal Kombat 3 (Plus Beta 1 2019-09-21)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/mslug3.cpp b/docs/release/src/hbmame/drivers/mslug3.cpp
index ebaf60da35d..e88a05bc0fe 100644
--- a/docs/release/src/hbmame/drivers/mslug3.cpp
+++ b/docs/release/src/hbmame/drivers/mslug3.cpp
@@ -10778,7 +10778,7 @@ GAME( 2020, mslug3h09, mslug3, neogeo_noslot, neogeo, neogeo_state, init_
GAME( 2000, mslug3h10, mslug3, neogeo_noslot, neogeo, neogeo_state, init_mslug3h, ROT0, "Ydmis", "Metal Slug 3 (Fire Bomb)", MACHINE_SUPPORTS_SAVE )
GAME( 2000, mslug3h11, mslug3, neogeo_noslot, neogeo, neogeo_state, init_mslug3h, ROT0, "Ydmis", "Metal Slug 3 (Stone Bomb)", MACHINE_SUPPORTS_SAVE )
GAME( 2000, mslug3h12, mslug3, neogeo_noslot, neogeo, neogeo_state, init_mslug3h, ROT0, "DDJ", "Metal Slug 3 (Change Character)", MACHINE_SUPPORTS_SAVE )
-GAME( 2000, mslug3h13, mslug3, neogeo_noslot, neogeo, neogeo_state, init_mslug3h, ROT0, "DDJ", "Metal Slug 3 (Change Weapon)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3h13, mslug3, neogeo_noslot, neogeo, neogeo_state, init_mslug3h, ROT0, "DDJ", "Metal Slug 3 (Change Weapon)", MACHINE_SUPPORTS_SAVE )
GAME( 2000, mslug3h14, mslug3, neogeo_noslot, neogeo, neogeo_state, init_mslug3h, ROT0, "DDJ", "Metal Slug 3 (Change Zombie)", MACHINE_SUPPORTS_SAVE )
GAME( 2000, mslug3h15, mslug3, neogeo_noslot, neogeo, neogeo_state, init_mslug3h, ROT0, "Ydmis", "Metal Slug 3 (Prisoner Never Lost)", MACHINE_SUPPORTS_SAVE )
GAME( 2000, mslug3h16, mslug3, neogeo_noslot, neogeo, neogeo_state, init_mslug3h, ROT0, "DDJ", "Metal Slug 3 (Quick Go Next Mission)", MACHINE_SUPPORTS_SAVE )
@@ -10802,20 +10802,20 @@ GAME( 2000, mslug3h33, mslug3, neogeo_noslot, neogeo, neogeo_state, init_
GAME( 2000, mslug3h34, mslug3, neogeo_noslot, neogeo, neogeo_state, init_mslug3h, ROT0, "Ydmis", "Metal Slug 3 (Weapons ShotGun With Infinite Ammo)", MACHINE_SUPPORTS_SAVE )
GAME( 2000, mslug3h35, mslug3, neogeo_noslot, neogeo, neogeo_state, init_mslug3h, ROT0, "Ydmis", "Metal Slug 3 (Weapons Thunder Cloud With Infinite Ammo)", MACHINE_SUPPORTS_SAVE )
GAME( 2000, mslug3h36, mslug3, neogeo_noslot, neogeo, neogeo_state, init_mslug3h, ROT0, "Ydmis", "Metal Slug 3 (Weapons Rocket Launcher With Infinite Ammo)" , MACHINE_SUPPORTS_SAVE )
-GAME( 2000, mslug3h37, mslug3, neogeo_noslot, neogeo, neogeo_state, init_mslug3h, ROT0, "PlayerX China", "Metal Slug 3 (Out Of Blue)" , MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3h37, mslug3, neogeo_noslot, neogeo, neogeo_state, init_mslug3h, ROT0, "PlayerX China", "Metal Slug 3 (Out Of Blue)" , MACHINE_SUPPORTS_SAVE )
GAME( 2020, mslug3h38, mslug3, neogeo_noslot, neogeo, neogeo_state, init_mslug3h, ROT0, "hack", "Metal Slug 3 (Burst Enhanced Edition 2020-03-29)", MACHINE_SUPPORTS_SAVE )
GAME( 2018, mslug3h39, mslug3, neogeo_noslot, neogeo, neogeo_state, init_mslug3h, ROT0, "hack", "Metal Slug 3 (Enemy Soldier Reset Alpha 2014-01-18)" , MACHINE_SUPPORTS_SAVE )
-GAME( 2017, mslug3h40, mslug3, neogeo_noslot, neogeo, neogeo_state, init_neogeo, ROT0, "hack", "Metal Slug 3 (Random Enemies Resetting Version 1.0 2017-12-08)" , MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug3h40, mslug3, neogeo_noslot, neogeo, neogeo_state, init_neogeo, ROT0, "hack", "Metal Slug 3 (Random Enemies Resetting Version 1.0 2017-12-08)" , MACHINE_SUPPORTS_SAVE )
GAME( 2018, mslug3h41, mslug3, neogeo_noslot, neogeo, neogeo_state, init_mslug3h, ROT0, "hack", "Metal Slug 3 (Store Version 2017-12-16)" , MACHINE_SUPPORTS_SAVE )
GAME( 2018, mslug3h42, mslug3, neogeo_noslot, neogeo, neogeo_state, init_mslug3h, ROT0, "hack", "Metal Slug 3 (Summon Mount Edition 2017-04-04)" , MACHINE_SUPPORTS_SAVE )
GAME( 2004, mslug3h43, mslug3, neogeo_noslot, neogeo, neogeo_state, init_mslug3fr, ROT0, "Shyma.X", "Metal Slug 3 (Neo Arc French Traduction Rev.2)", MACHINE_SUPPORTS_SAVE )
GAME( 2020, mslug3h44, mslug3, neogeo_noslot, neogeo, neogeo_state, init_mslug3h, ROT0, "hack", "Metal Slug 3 (Burst Enhanced Edition 2020-04-28)", MACHINE_SUPPORTS_SAVE )
GAME( 2020, mslug3h45, mslug3, neogeo_noslot, neogeo, neogeo_state, init_mslug3h, ROT0, "Ydmis/Gaston90", "Metal Slug 3 (248 grenades 2020-05-31)", MACHINE_SUPPORTS_SAVE )
-GAME( 2018, mslug3h46, mslug3, neogeo_noslot, neogeo, neogeo_state, init_neogeo, ROT0, "hack", "Metal Slug 3 (Ghost Wu Zuoma 2018-05-29)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2018, mslug3h46, mslug3, neogeo_noslot, neogeo, neogeo_state, init_neogeo, ROT0, "hack", "Metal Slug 3 (Ghost Wu Zuoma 2018-05-29)", MACHINE_SUPPORTS_SAVE )
GAME( 2017, mslug3h47, mslug3, neogeo_noslot, neogeo, neogeo_state, init_mslug3h, ROT0, "hack", "Metal Slug 3 (Summon Mount Prototype Rev.1 2017-10-09)", MACHINE_SUPPORTS_SAVE )
GAME( 2019, mslug3h48, mslug3, neogeo_noslot, neogeo, neogeo_state, init_cmc42sfix, ROT0, "XiaShuiDaoMeiRenYu", "Metal Slug 3 (Enemies Resetting Version 2019-04-15)" , MACHINE_SUPPORTS_SAVE )
-GAME( 2018, mslug3h49, mslug3, neogeo_noslot, neogeo, neogeo_state, init_mslug3h, ROT0, "hack", "Metal Slug 3 (Enhanced Edition 2018-05-09)" , MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
-GAME( 2018, mslug3h50, mslug3, neogeo_noslot, neogeo, neogeo_state, init_neogeo, ROT0, "hack", "Metal Slug 3 (Random Enemies Resetting Version 1.0.1 2018-07-21)" , MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2018, mslug3h49, mslug3, neogeo_noslot, neogeo, neogeo_state, init_mslug3h, ROT0, "hack", "Metal Slug 3 (Enhanced Edition 2018-05-09)" , MACHINE_SUPPORTS_SAVE )
+GAME( 2018, mslug3h50, mslug3, neogeo_noslot, neogeo, neogeo_state, init_neogeo, ROT0, "hack", "Metal Slug 3 (Random Enemies Resetting Version 1.0.1 2018-07-21)" , MACHINE_SUPPORTS_SAVE )
GAME( 2019, mslug3h51, mslug3, neogeo_noslot, neogeo, neogeo_state, init_cmc42sfix, ROT0, "hack", "Metal Slug 3 (Enemy Soldiers Reset 2019-01-02)" , MACHINE_SUPPORTS_SAVE )
GAME( 2019, mslug3h52, mslug3, neogeo_noslot, neogeo, neogeo_state, init_neogeo, ROT0, "CiBaoXianQuan", "Metal Slug 3 (Multi-Function Version 2019-01-19)" , MACHINE_SUPPORTS_SAVE )
GAME( 2019, mslug3h53, mslug3, neogeo_noslot, neogeo, neogeo_state, init_cmc42sfix, ROT0, "XiaShuiDaoMeiRenYu", "Metal Slug 3 (Enemies Resetting Version 2019-02-12)" , MACHINE_SUPPORTS_SAVE )
@@ -10831,8 +10831,8 @@ GAME( 2018, mslug3h62, mslug3, neogeo_noslot, neogeo, neogeo_state, init_
GAME( 2019, mslug3h63, mslug3, neogeo_noslot, neogeo, neogeo_state, init_mslug3h, ROT0, "hack", "Metal Slug 3 (Mount Enhanced 2019-04-04)", MACHINE_SUPPORTS_SAVE )
GAME( 2020, mslug3h64, mslug3, neogeo_noslot, neogeo, neogeo_state, init_neogeo, ROT0, "hack", "Metal Slug 3 (Ultimate Simplified Edition 2020-08-25)", MACHINE_SUPPORTS_SAVE )
GAME( 2020, mslug3h65, mslug3, neogeo_noslot, neogeo, neogeo_state, init_mslug3h, ROT0, "hack", "Metal Slug 3 (Hybrid Bullets Version 2020-09-12)", MACHINE_SUPPORTS_SAVE )
-GAME( 2020, mslug3h66, mslug3, neogeo_noslot, neogeo, neogeo_state, init_cmc42sfix, ROT0, "hack", "Metal Slug 3 (Crazy Zombie 2020-09-12)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) //It is unstable and can crash suddenly at any level, the problem is generated by the file .p1.
-GAME( 2020, mslug3h67, mslug3, neogeo_noslot, neogeo, neogeo_state, init_cmc42sfix, ROT0, "hack", "Metal Slug 3 (Crazy Mummy 2020-09-05)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) //It is unstable and can crash suddenly at any level, the problem is generated by the file .p1.
+GAME( 2020, mslug3h66, mslug3, neogeo_noslot, neogeo, neogeo_state, init_cmc42sfix, ROT0, "hack", "Metal Slug 3 (Crazy Zombie 2020-09-12)", MACHINE_SUPPORTS_SAVE ) //It is unstable and can crash suddenly at any level, the problem is generated by the file .p1.
+GAME( 2020, mslug3h67, mslug3, neogeo_noslot, neogeo, neogeo_state, init_cmc42sfix, ROT0, "hack", "Metal Slug 3 (Crazy Mummy 2020-09-05)", MACHINE_SUPPORTS_SAVE ) //It is unstable and can crash suddenly at any level, the problem is generated by the file .p1.
GAME( 2020, mslug3h68, mslug3, neogeo_noslot, neogeo, neogeo_state, init_cmc42sfix, ROT0, "hack", "Metal Slug 3 (The Last Warhead 2020-09-05)", MACHINE_SUPPORTS_SAVE )
GAME( 2020, mslug3h69, mslug3, neogeo_noslot, neogeo, neogeo_state, init_neogeo, ROT0, "hack", "Metal Slug 3 (Crazy Fire Edition 2020-09-03)", MACHINE_SUPPORTS_SAVE )
GAME( 2020, mslug3h70, mslug3, neogeo_noslot, neogeo, neogeo_state, init_mslug3h, ROT0, "I love Nimes", "Metal Slug 3 (Burst Enhanced Edition 2020-09-18)", MACHINE_SUPPORTS_SAVE )
@@ -10840,17 +10840,14 @@ GAME( 2020, mslug3h71, mslug3, neogeo_noslot, neogeo, neogeo_state, init_
GAME( 2019, mslug6h01, mslug3, neogeo_noslot, neogeo, neogeo_state, init_ms6s16, ROT0, "XiaShuiDaoMeiRenYu", "Metal Slug 6 (Enemies Resetting Version 2019-02-12)", MACHINE_SUPPORTS_SAVE ) //Official roms hacks
GAME( 2019, mslug6h02, mslug3, neogeo_noslot, neogeo, neogeo_state, init_ms6s16, ROT0, "hack", "Metal Slug 6 (Enemy Soldier Reset #3 2019-01-02)", MACHINE_SUPPORTS_SAVE ) //Official roms hacks
-GAME( 2019, mslug6h03, mslug3, neogeo_noslot, neogeo, neogeo_state, init_ms6s16, ROT0, "hack", "Metal Slug 6 (Summon Mount Edition 2019-02-19)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2019, mslug6h03, mslug3, neogeo_noslot, neogeo, neogeo_state, init_ms6s16, ROT0, "hack", "Metal Slug 6 (Summon Mount Edition 2019-02-19)", MACHINE_SUPPORTS_SAVE )
GAME( 2015, mslug6h04, mslug3, neogeo_noslot, neogeo, neogeo_state, init_mslug3b6, ROT0, "hack", "Metal Slug 6 (Super Enhanced Edition 2015-05-15)", MACHINE_SUPPORTS_SAVE )
-GAME( 2020, mslug6h05, mslug3, neogeo_noslot, neogeo, neogeo_state, init_ms6s16, ROT0, "hack", "Metal Slug 6 (Enemies Resetting Version 2019-07-20)(Summon Mount Burst Enhanced Edition 2020-03-29)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
-GAME( 2020, mslug6h06, mslug3, neogeo_noslot, neogeo, neogeo_state, init_ms6s16, ROT0, "hack", "Metal Slug 6 (Enemies Resetting Version 2019-07-20)(Summon Mount Burst Enhanced Edition 2020-04-28)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2020, mslug6h05, mslug3, neogeo_noslot, neogeo, neogeo_state, init_ms6s16, ROT0, "hack", "Metal Slug 6 (Enemies Resetting Version 2019-07-20)(Summon Mount Burst Enhanced Edition 2020-03-29)", MACHINE_SUPPORTS_SAVE )
+GAME( 2020, mslug6h06, mslug3, neogeo_noslot, neogeo, neogeo_state, init_ms6s16, ROT0, "hack", "Metal Slug 6 (Enemies Resetting Version 2019-07-20)(Summon Mount Burst Enhanced Edition 2020-04-28)", MACHINE_SUPPORTS_SAVE )
GAME( 2020, mslug6h07, mslug3, neogeo_noslot, neogeo, neogeo_state, init_ms6s16, ROT0, "hack", "Metal Slug 6 (Fatty War 2020-08-25)", MACHINE_SUPPORTS_SAVE )
GAME( 2020, mslug6h08, mslug3, neogeo_noslot, neogeo, neogeo_state, init_ms6s16, ROT0, "hack", "Metal Slug 6 (Crazy Fire Edición 2020-09-03)", MACHINE_SUPPORTS_SAVE )
GAME( 2020, mslug6h09, mslug3, neogeo_noslot, neogeo, neogeo_state, init_neogeo, ROT0, "hack", "Metal Slug 6 (Enemies Resetting Version 2019-09-30)", MACHINE_SUPPORTS_SAVE )
-/**************
- Metal Slug 3
-*****************/
GAME( 2020, mslug3ern01, mslug3, neogeo_noslot, neogeo, neogeo_state, init_cmc42sfix, ROT0, "Gaston90/XiaShuiDaoMeiRenYu", "Metal Slug 3 (Enemies Resetting Version 2019-07-20)[Edition 1](Multi-Function Version)" , MACHINE_SUPPORTS_SAVE ) //Enemies Resetting Version 2019-07-20
GAME( 2020, mslug3ern02, mslug3, neogeo_noslot, neogeo, neogeo_state, init_neogeo, ROT0, "Gaston90/XiaShuiDaoMeiRenYu", "Metal Slug 3 (Enemies Resetting Version 2019-09-29)[Edition 1](Ghost Wu Zuoma Version)", MACHINE_SUPPORTS_SAVE ) //Enemies Resetting Version 2019-07-20
GAME( 2020, mslug3ern03, mslug3, neogeo_noslot, neogeo, neogeo_state, init_cmc42sfix, ROT0, "Gaston90/XiaShuiDaoMeiRenYu", "Metal Slug 3 (Enemies Resetting Version 2019-09-29)[Edition 1](Summon Mount Edition)", MACHINE_SUPPORTS_SAVE ) //Enemies Resetting Version 2019-07-20
@@ -11053,22 +11050,22 @@ GAME( 2020, mslug6hd01, mslug3, neogeo_noslot, neogeo, neogeo_state, init_
GAME( 2020, mslug6he01, mslug3, neogeo_noslot, neogeo, neogeo_state, init_ms6s16, ROT0, "Gaston90", "Metal Slug 6 (Enemy Soldier Reset #1 2020-09-05)", MACHINE_SUPPORTS_SAVE )
GAME( 2020, mslug6hz01, mslug3, neogeo_noslot, neogeo, neogeo_state, init_ms6s16, ROT0, "Gaston90", "Metal Slug 6 (Removed The Change Gun Version 2020-09-18)", MACHINE_SUPPORTS_SAVE )
-GAME( 2020, mslug6ta01, mslug3, neogeo_noslot, neogeo, neogeo_state, init_ms6s16, ROT0, "Gaston90", "Metal Slug 6 (Enemy Soldier Reset Prototype 2018-07-21)(Summon Mount Edition)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2020, mslug6ta01, mslug3, neogeo_noslot, neogeo, neogeo_state, init_ms6s16, ROT0, "Gaston90", "Metal Slug 6 (Enemy Soldier Reset Prototype 2018-07-21)(Summon Mount Edition)", MACHINE_SUPPORTS_SAVE )
GAME( 2020, mslug6ta02, mslug3, neogeo_noslot, neogeo, neogeo_state, init_ms6s16, ROT0, "Gaston90/I love Nimes", "Metal Slug 6 (Enemy Soldier Reset Prototype 2018-07-21)(Burst Enhanced Edition)", MACHINE_SUPPORTS_SAVE )
GAME( 2020, mslug6ta03, mslug3, neogeo_noslot, neogeo, neogeo_state, init_ms6s16, ROT0, "Gaston90", "Metal Slug 6 (Enemy Soldier Reset Prototype 2018-07-21)(Hybrid Bullets Version)", MACHINE_SUPPORTS_SAVE )
-GAME( 2020, mslug6tb01, mslug3, neogeo_noslot, neogeo, neogeo_state, init_ms6s16, ROT0, "Gaston90/XiaShuiDaoMeiRenYu", "Metal Slug 6 (Enemies Resetting Version 2019-09-29)[Edition 2](Summon Mount Edition)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) //Enemies Resetting 2019-07-20
+GAME( 2020, mslug6tb01, mslug3, neogeo_noslot, neogeo, neogeo_state, init_ms6s16, ROT0, "Gaston90/XiaShuiDaoMeiRenYu", "Metal Slug 6 (Enemies Resetting Version 2019-09-29)[Edition 2](Summon Mount Edition)", MACHINE_SUPPORTS_SAVE ) //Enemies Resetting 2019-07-20
GAME( 2020, mslug6tb02, mslug3, neogeo_noslot, neogeo, neogeo_state, init_ms6s16, ROT0, "Gaston90/XiaShuiDaoMeiRenYu/I love Nimes", "Metal Slug 6 (Enemies Resetting Version 2019-09-29)[Edition 2](Burst Enhanced Edition)", MACHINE_SUPPORTS_SAVE ) //Enemies Resetting 2019-07-20
GAME( 2020, mslug6tb03, mslug3, neogeo_noslot, neogeo, neogeo_state, init_ms6s16, ROT0, "Gaston90/XiaShuiDaoMeiRenYu", "Metal Slug 6 (Enemies Resetting Version 2019-09-29)[Edition 2](Hybrid Bullets Version)", MACHINE_SUPPORTS_SAVE ) //Enemies Resetting 2019-07-20
-GAME( 2020, mslug6tc01, mslug3, neogeo_noslot, neogeo, neogeo_state, init_ms6s16, ROT0, "Gaston90", "Metal Slug 6 (The Last Warhead 2020-09-29)[Edition 2](Summon Mount Edition)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) //The Last Warhead 2020-09-05
+GAME( 2020, mslug6tc01, mslug3, neogeo_noslot, neogeo, neogeo_state, init_ms6s16, ROT0, "Gaston90", "Metal Slug 6 (The Last Warhead 2020-09-29)[Edition 2](Summon Mount Edition)", MACHINE_SUPPORTS_SAVE ) //The Last Warhead 2020-09-05
GAME( 2020, mslug6tc02, mslug3, neogeo_noslot, neogeo, neogeo_state, init_ms6s16, ROT0, "Gaston90/I love Nimes", "Metal Slug 6 (The Last Warhead 2020-09-29)[Edition 2](Burst Enhanced Edition)", MACHINE_SUPPORTS_SAVE ) //The Last Warhead 2020-09-05
GAME( 2020, mslug6tc03, mslug3, neogeo_noslot, neogeo, neogeo_state, init_ms6s16, ROT0, "Gaston90", "Metal Slug 6 (The Last Warhead 2020-09-29)[Edition 2](Hybrid Bullets Version)", MACHINE_SUPPORTS_SAVE ) //The Last Warhead 2020-09-05
-GAME( 2020, mslug6td01, mslug3, neogeo_noslot, neogeo, neogeo_state, init_ms6s16, ROT0, "Gaston90", "Metal Slug 6 (The Future 2020-09-29)[Edition 2](Summon Mount Edition)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) //The Future 2020-09-29
+GAME( 2020, mslug6td01, mslug3, neogeo_noslot, neogeo, neogeo_state, init_ms6s16, ROT0, "Gaston90", "Metal Slug 6 (The Future 2020-09-29)[Edition 2](Summon Mount Edition)", MACHINE_SUPPORTS_SAVE ) //The Future 2020-09-29
GAME( 2020, mslug6td02, mslug3, neogeo_noslot, neogeo, neogeo_state, init_ms6s16, ROT0, "Gaston90/I love Nimes", "Metal Slug 6 (The Future 2020-09-29)[Edition 2](Burst Enhanced Edition)", MACHINE_SUPPORTS_SAVE ) //The Future 2020-09-29
GAME( 2020, mslug6td03, mslug3, neogeo_noslot, neogeo, neogeo_state, init_ms6s16, ROT0, "Gaston90", "Metal Slug 6 (The Future 2020-09-29)[Edition 2](Hybrid Bullets Version)", MACHINE_SUPPORTS_SAVE ) //The Future 2020-09-29
-GAME( 2020, mslug6te01, mslug3, neogeo_noslot, neogeo, neogeo_state, init_ms6s16, ROT0, "Gaston90", "Metal Slug 6 (Enemy Soldier Reset Version #1 2020-09-29)[Edition 2](Summon Mount Edition)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) //Enemy Soldier Reset #1 2020-09-05
+GAME( 2020, mslug6te01, mslug3, neogeo_noslot, neogeo, neogeo_state, init_ms6s16, ROT0, "Gaston90", "Metal Slug 6 (Enemy Soldier Reset Version #1 2020-09-29)[Edition 2](Summon Mount Edition)", MACHINE_SUPPORTS_SAVE ) //Enemy Soldier Reset #1 2020-09-05
GAME( 2020, mslug6te02, mslug3, neogeo_noslot, neogeo, neogeo_state, init_ms6s16, ROT0, "Gaston90/I love Nimes", "Metal Slug 6 (Enemy Soldier Reset Version #1 2020-09-29)[Edition 2](Burst Enhanced Edition)", MACHINE_SUPPORTS_SAVE ) //Enemy Soldier Reset #1 2020-09-05
GAME( 2020, mslug6te03, mslug3, neogeo_noslot, neogeo, neogeo_state, init_ms6s16, ROT0, "Gaston90", "Metal Slug 6 (Enemy Soldier Reset Version #1 2020-09-29)[Edition 2](Hybrid Bullets Version)", MACHINE_SUPPORTS_SAVE ) //Enemy Soldier Reset #1 2020-09-05
-GAME( 2020, mslug6tf01, mslug3, neogeo_noslot, neogeo, neogeo_state, init_ms6s16, ROT0, "Gaston90", "Metal Slug 6 (Enemy Soldier Reset Version #3 2020-09-29)[Edition 2](Summon Mount Edition)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) //Enemy Soldier Reset #3 2019-01-02
+GAME( 2020, mslug6tf01, mslug3, neogeo_noslot, neogeo, neogeo_state, init_ms6s16, ROT0, "Gaston90", "Metal Slug 6 (Enemy Soldier Reset Version #3 2020-09-29)[Edition 2](Summon Mount Edition)", MACHINE_SUPPORTS_SAVE ) //Enemy Soldier Reset #3 2019-01-02
GAME( 2020, mslug6tf02, mslug3, neogeo_noslot, neogeo, neogeo_state, init_ms6s16, ROT0, "Gaston90/I love Nimes", "Metal Slug 6 (Enemy Soldier Reset Version #3 2020-09-29)[Edition 2](Burst Enhanced Edition)", MACHINE_SUPPORTS_SAVE ) //Enemy Soldier Reset #3 2019-01-02
GAME( 2020, mslug6tf03, mslug3, neogeo_noslot, neogeo, neogeo_state, init_ms6s16, ROT0, "Gaston90", "Metal Slug 6 (Enemy Soldier Reset Version #3 2020-09-29)[Edition 2](Hybrid Bullets Version)", MACHINE_SUPPORTS_SAVE ) //Enemy Soldier Reset #3 2019-01-02
diff --git a/docs/release/src/hbmame/drivers/mslug4.cpp b/docs/release/src/hbmame/drivers/mslug4.cpp
index 8ed2c3e33e5..6474cdfdc7c 100644
--- a/docs/release/src/hbmame/drivers/mslug4.cpp
+++ b/docs/release/src/hbmame/drivers/mslug4.cpp
@@ -220,6 +220,11 @@ ROM_START( mslug4xg )
ROM_REGION( 0x500000, "maincpu", 0 )
ROM_LOAD16_WORD_SWAP( "263xg.p1", 0x000000, 0x100000, CRC(358a28ce) SHA1(b998a77f73cbc42e8ee1f580bd3780c675197b8e) )
ROM_LOAD16_WORD_SWAP( "263.p2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+ // fixes freeze in attract mode
+ ROM_FILL(0xc56c6,1,0x1d)
+ ROM_FILL(0xc56c7,1,0x40)
+ ROM_FILL(0xc56d0,1,0x1d)
+ ROM_FILL(0xc56d1,1,0x41)
NEO_SFIX_MT_512K
@@ -402,7 +407,7 @@ GAME( 2002, mslug4eh5, mslug4, neogeo_noslot, neogeo, neogeo_state, init_mslug
GAME( 2002, mslug4eh6, mslug4, neogeo_noslot, neogeo, neogeo_state, init_mslug4hb, ROT0, "Creamymami", "Metal Slug 4 (Style Remix 030414 Set 6)", MACHINE_SUPPORTS_SAVE )
GAME( 2002, mslug4eh, mslug4, neogeo_noslot, neogeo, neogeo_state, init_mslug4hb, ROT0, "Creamymami", "Metal Slug 4 (Style Remix 030414 Set 1)", MACHINE_SUPPORTS_SAVE )
GAME( 2002, mslug4kh, mslug4, neogeo_noslot, neogeo, neogeo_state, init_mslug4hb, ROT0, "Creamymami and Fighters Kim", "Metal Slug 4 (Style remix 030731)", MACHINE_SUPPORTS_SAVE )
-GAME( 2002, mslug4xg, mslug4, neogeo_noslot, neogeo, neogeo_state, init_mslug4hb, ROT0, "ZKW", "Metal Slug 4 (PPX Team Hack, Remixed)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mslug4xg, mslug4, neogeo_noslot, neogeo, neogeo_state, init_mslug4hb, ROT0, "ZKW", "Metal Slug 4 (PPX Team Hack, Remixed)", MACHINE_SUPPORTS_SAVE )
GAME( 2002, mslug4d, mslug4, neogeo_noslot, neogeo, neogeo_state, init_mslug4hb, ROT0, "Mega", "Metal Slug 4 (Decrypted C)", MACHINE_SUPPORTS_SAVE )
GAME( 2007, mslug4dh, mslug4, neogeo_noslot, neogeo, neogeo_state, init_mslug4hb, ROT0, "HappyASR [EGCG]", "Metal Slug 4 (Super D Version)", MACHINE_SUPPORTS_SAVE )
GAME( 2002, mslug4eho, mslug4, neogeo_noslot, neogeo, neogeo_state, init_mslug4hb, ROT0, "Creamymami", "Metal Slug 4 (Style Remix Old)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/snesb.cpp b/docs/release/src/hbmame/drivers/snesb.cpp
index 6f4939122cf..25439bbc7e1 100644
--- a/docs/release/src/hbmame/drivers/snesb.cpp
+++ b/docs/release/src/hbmame/drivers/snesb.cpp
@@ -15,9 +15,11 @@
ROM_START( sblast2bs01 )
ROM_REGION( 0x180000, "user3", ROMREGION_ERASEFF )
+ // not used
ROM_REGION(0x100, "sound_ipl", 0)
ROM_LOAD("spc700.rom", 0, 0x40, CRC(44bb3a40) SHA1(97e352553e94242ae823547cd853eecda55c20f0) )
+ // not used
ROM_REGION(0x800, "user6", ROMREGION_ERASEFF)
ROM_REGION( 0x180000, "user7", 0 )
@@ -28,5 +30,5 @@ ROM_END
/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS */
// Sonic Blast Man 2
-GAME( 1997, sblast2bs01, sblast2b, kinstb, sblast2b, snesb_state, init_sblast2b, ROT0, "RockyWall", "Sonic Blast Man 2 Special Turbo (Level Sequence Repair)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS)
-// broken in 214-215 cycle
+GAME( 1997, sblast2bs01, sblast2b, sblast2b, sblast2b, snesb_state, init_sblast2b, ROT0, "RockyWall", "Sonic Blast Man 2 Special Turbo (Level Sequence Repair)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS)
+
diff --git a/docs/release/src/hbmame/hbmame.lst b/docs/release/src/hbmame/hbmame.lst
index 550cbd59b2a..92bfd4ea5c3 100644
--- a/docs/release/src/hbmame/hbmame.lst
+++ b/docs/release/src/hbmame/hbmame.lst
@@ -69,7 +69,7 @@ bonzeadv //parent
jigkmgris01
@source:atarig42.cpp
-//more...
+dangerex
@source:atarisy1.cpp
atarisy1 //bios
@@ -4261,6 +4261,9 @@ umk3uc20210228
umk3uc20210304
umk3uc20210401
umk3uc20210423
+umk3uc20210430
+umk3uk20210709
+umk3uk20210727
umk3tm20180120
umk3tm20190417
umk3plus20190921
diff --git a/docs/release/src/mame/drivers/galaxian.cpp b/docs/release/src/mame/drivers/galaxian.cpp
index 2356644773c..85e8644763e 100644
--- a/docs/release/src/mame/drivers/galaxian.cpp
+++ b/docs/release/src/mame/drivers/galaxian.cpp
@@ -4556,6 +4556,15 @@ static INPUT_PORTS_START( porter )
INPUT_PORTS_END
+static INPUT_PORTS_START( portera )
+ PORT_INCLUDE(porter)
+
+ PORT_MODIFY("IN0")
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
+INPUT_PORTS_END
+
+
static INPUT_PORTS_START( skybase )
PORT_INCLUDE(mooncrst)
@@ -15143,7 +15152,7 @@ GAME( 1984, bagmanm2, bagman, bagmanmc, bagmanmc, bagmanmc_state, init_
// Other games on basic mooncrst hardware
GAME( 1982, porter, dockman, porter, porter, pisces_state, init_pisces, ROT90, "bootleg", "Port Man (bootleg on Moon Cresta hardware)", MACHINE_IMPERFECT_COLORS | MACHINE_NO_COCKTAIL )
-GAME( 1982, portera, dockman, porter, porter, pisces_state, init_pisces, ROT90, "bootleg", "El Estivador (Spanish bootleg of Port Man on Galaxian hardware)", MACHINE_IMPERFECT_COLORS | MACHINE_NO_COCKTAIL )
+GAME( 1982, portera, dockman, porter, portera, pisces_state, init_pisces, ROT90, "bootleg", "El Estivador (Spanish bootleg of Port Man on Galaxian hardware)", MACHINE_IMPERFECT_COLORS | MACHINE_NO_COCKTAIL )
GAME( 1982, skybase, 0, skybase, skybase, pisces_state, init_pisces, ROT90, "Omori Electric Co., Ltd.", "Sky Base", MACHINE_SUPPORTS_SAVE )
GAME( 198?, kong, 0, kong, kong, galaxian_state, init_kong, ROT90, "Taito do Brasil", "Kong (Donkey Kong conversion on Galaxian hardware)", MACHINE_SUPPORTS_SAVE | MACHINE_WRONG_COLORS ) // rewrite of Donkey Kong (!) not a clone
diff --git a/docs/release/src/mame/drivers/konamigx.cpp b/docs/release/src/mame/drivers/konamigx.cpp
index 285068a805e..c3b31babc6c 100644
--- a/docs/release/src/mame/drivers/konamigx.cpp
+++ b/docs/release/src/mame/drivers/konamigx.cpp
@@ -2181,39 +2181,6 @@ ROM_START( salmndr2a )
ROM_LOAD( "salmndr2a.nv", 0x0000, 0x080, CRC(3a98a8f9) SHA1(08c2d164620a4d8ad902d502acea8ad621931198) )
ROM_END
-/* Magical Twinbee */
-ROM_START( mtwinbee )
- /* main program */
- ROM_REGION( 0x800000, "maincpu", 0 )
- GX_BIOS
- ROM_LOAD32_WORD_SWAP( "424eaa02.31b", 0x200002, 512*1024, CRC(34659905) SHA1(011df093502644ab7ceb7fd1fbca41d09af89566) )
- ROM_LOAD32_WORD_SWAP( "424eaa04.27b", 0x200000, 512*1024, CRC(f42d3139) SHA1(e03006b4a87a70dfba9ec5e4857442424269986c) )
-
- /* sound program */
- ROM_REGION( 0x40000, "soundcpu", 0 )
- ROM_LOAD16_BYTE("424a06.9c", 0x000000, 128*1024, CRC(a4760e14) SHA1(78dbd309f3f7fa61e92c9554e594449a7d4eed5a) )
- ROM_LOAD16_BYTE("424a07.7c", 0x000001, 128*1024, CRC(fa90d7e2) SHA1(6b6dee29643309005834416bdfdb18d74f34cb1b) )
-
- /* tiles */
- ROM_REGION( 0x500000, "k056832", ROMREGION_ERASE00 )
- TILE_WORD_ROM_LOAD( "424a14.17h", 0x000000, 2*1024*1024, CRC(b1d9fce8) SHA1(143ed2f03ac10a0f18d878c0ee0509a5714e4664) )
- TILE_BYTE_ROM_LOAD( "424a12.13g", 0x000004, 512*1024, CRC(7f9cb8b1) SHA1(f5e18d70fcb572bb85f9b064995fc0ab0bb581e8) )
-
- /* sprites */
- ROM_REGION( 0x500000, "k055673", ROMREGION_ERASE00 )
- ROM_LOAD32_WORD( "424a11.25g", 0x000000, 2*1024*1024, CRC(29592688) SHA1(a4b44e9153988a510915af83116e3c18dd15642f) )
- ROM_LOAD32_WORD( "424a10.28g", 0x000002, 2*1024*1024, CRC(cf24e5e3) SHA1(095bf2ae4f47c6e4768515ae5e22c982fbc660a5) )
- ROM_LOAD( "424a09.30g", 0x400000, 1*1024*1024, CRC(daa07224) SHA1(198cafa3d0ead2aa2593be066c6f372e66c11c44) )
-
- /* sound data */
- ROM_REGION( 0x400000, "k054539", 0 )
- ROM_LOAD( "424a17.9g", 0x000000, 2*1024*1024, CRC(e9dd9692) SHA1(c289019c8d1dd71b3cec26479c39b649de804707) )
- ROM_LOAD( "424a18.7g", 0x200000, 2*1024*1024, CRC(0f0d9f3a) SHA1(57f6b113b80f06964b7e672ad517c1654c5569c5) )
-
- ROM_REGION16_BE( 0x80, "eeprom", 0 ) // default eeprom to prevent game booting with error
- ROM_LOAD( "mtwinbee.nv", 0x0000, 0x080, CRC(942b4323) SHA1(2f6799bf187510355df5e52c4d416f5c5e70fa05) )
-ROM_END
-
/* Twinbee Yahhoo! */
ROM_START( tbyahhoo )
/* main program */
@@ -2276,6 +2243,39 @@ ROM_START( daiskiss )
ROM_LOAD( "535a22.9g", 0x000000, 2*1024*1024, CRC(7ee59acb) SHA1(782bf15f205e9fe7bd069f6445eb8187837dee32) )
ROM_END
+/* Magical Twinbee */
+ROM_START( mtwinbee )
+ /* main program */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ GX_BIOS
+ ROM_LOAD32_WORD_SWAP( "424eaa02.31b", 0x200002, 512*1024, CRC(34659905) SHA1(011df093502644ab7ceb7fd1fbca41d09af89566) )
+ ROM_LOAD32_WORD_SWAP( "424eaa04.27b", 0x200000, 512*1024, CRC(f42d3139) SHA1(e03006b4a87a70dfba9ec5e4857442424269986c) )
+
+ /* sound program */
+ ROM_REGION( 0x40000, "soundcpu", 0 )
+ ROM_LOAD16_BYTE("424a06.9c", 0x000000, 128*1024, CRC(a4760e14) SHA1(78dbd309f3f7fa61e92c9554e594449a7d4eed5a) )
+ ROM_LOAD16_BYTE("424a07.7c", 0x000001, 128*1024, CRC(fa90d7e2) SHA1(6b6dee29643309005834416bdfdb18d74f34cb1b) )
+
+ /* tiles */
+ ROM_REGION( 0x500000, "k056832", ROMREGION_ERASE00 )
+ TILE_WORD_ROM_LOAD( "424a14.17h", 0x000000, 2*1024*1024, CRC(b1d9fce8) SHA1(143ed2f03ac10a0f18d878c0ee0509a5714e4664) )
+ TILE_BYTE_ROM_LOAD( "424a12.13g", 0x000004, 512*1024, CRC(7f9cb8b1) SHA1(f5e18d70fcb572bb85f9b064995fc0ab0bb581e8) )
+
+ /* sprites */
+ ROM_REGION( 0x500000, "k055673", ROMREGION_ERASE00 )
+ ROM_LOAD32_WORD( "424a11.25g", 0x000000, 2*1024*1024, CRC(29592688) SHA1(a4b44e9153988a510915af83116e3c18dd15642f) )
+ ROM_LOAD32_WORD( "424a10.28g", 0x000002, 2*1024*1024, CRC(cf24e5e3) SHA1(095bf2ae4f47c6e4768515ae5e22c982fbc660a5) )
+ ROM_LOAD( "424a09.30g", 0x400000, 1*1024*1024, CRC(daa07224) SHA1(198cafa3d0ead2aa2593be066c6f372e66c11c44) )
+
+ /* sound data */
+ ROM_REGION( 0x400000, "k054539", 0 )
+ ROM_LOAD( "424a17.9g", 0x000000, 2*1024*1024, CRC(e9dd9692) SHA1(c289019c8d1dd71b3cec26479c39b649de804707) )
+ ROM_LOAD( "424a18.7g", 0x200000, 2*1024*1024, CRC(0f0d9f3a) SHA1(57f6b113b80f06964b7e672ad517c1654c5569c5) )
+
+ ROM_REGION16_BE( 0x80, "eeprom", 0 ) // default eeprom to prevent game booting with error
+ ROM_LOAD( "mtwinbee.nv", 0x0000, 0x080, CRC(942b4323) SHA1(2f6799bf187510355df5e52c4d416f5c5e70fa05) )
+ROM_END
+
/* Sexy Parodius version JAA (Japan) */
ROM_START( sexyparo )
/* main program */
@@ -4046,8 +4046,8 @@ GAME( 1994, gokuparo, fantjour, gokuparo, gokuparo, konamigx_state, init_ko
GAME( 1994, crzcross, konamigx, gokuparo, puzldama, konamigx_state, init_posthack, ROT0, "Konami", "Crazy Cross (ver EAA)", MACHINE_IMPERFECT_GRAPHICS )
GAME( 1994, puzldama, crzcross, gokuparo, puzldama, konamigx_state, init_posthack, ROT0, "Konami", "Taisen Puzzle-dama (ver JAA)", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1995, mtwinbee, konamigx, tbyahhoo, gokuparo, konamigx_state, init_posthack, ROT0, "Konami", "Magical Twin Bee (ver EAA)", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1995, tbyahhoo, mtwinbee, tbyahhoo, gokuparo, konamigx_state, init_posthack, ROT0, "Konami", "Twin Bee Yahhoo! (ver JAA)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1995, tbyahhoo, konamigx, tbyahhoo, gokuparo, konamigx_state, init_posthack, ROT0, "Konami", "Twin Bee Yahhoo! (ver JAA)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1995, mtwinbee, tbyahhoo, tbyahhoo, gokuparo, konamigx_state, init_posthack, ROT0, "Konami", "Magical Twin Bee (ver EAA)", MACHINE_IMPERFECT_GRAPHICS )
GAME( 1995, tkmmpzdm, konamigx, konamigx_6bpp, tokkae, konamigx_state, init_konamigx, ROT0, "Konami", "Tokimeki Memorial Taisen Puzzle-dama (ver JAB)", MACHINE_IMPERFECT_GRAPHICS )
diff --git a/docs/release/src/mame/video/avgdvg.cpp b/docs/release/src/mame/video/avgdvg.cpp
index 173114821f6..00746047f97 100644
--- a/docs/release/src/mame/video/avgdvg.cpp
+++ b/docs/release/src/mame/video/avgdvg.cpp
@@ -16,8 +16,10 @@
#include "emu.h"
#include "avgdvg.h"
+
#include "screen.h"
+
/*************************************
*
* Macros and defines
@@ -821,9 +823,13 @@ int avg_mhavoc_device::handler_7() // mhavoc_strobe3
const u8 g = bit1 * 0xcb;
const u8 b = bit0 * 0xcb;
+ int x = m_xpos;
+ int y = m_ypos;
+ apply_flipping(x, y);
+
vg_add_point_buf(
- m_xpos,
- m_ypos,
+ x,
+ y,
rgb_t(r, g, b),
(((m_int_latch >> 1) == 1) ? m_intensity : m_int_latch & 0xe) << 4);
m_spkl_shift = (BIT(m_spkl_shift, 6) ^ BIT(m_spkl_shift, 5) ^ 1) | (m_spkl_shift << 1);
@@ -846,9 +852,13 @@ int avg_mhavoc_device::handler_7() // mhavoc_strobe3
const u8 g = bit1 * 0xcb;
const u8 b = bit0 * 0xcb;
+ int x = m_xpos;
+ int y = m_ypos;
+ apply_flipping(x, y);
+
vg_add_point_buf(
- m_xpos,
- m_ypos,
+ x,
+ y,
rgb_t(r, g, b),
(((m_int_latch >> 1) == 1) ? m_intensity : m_int_latch & 0xe) << 4);
}
diff --git a/docs/release/src/mame/video/midtunit.cpp b/docs/release/src/mame/video/midtunit.cpp
index 2562168dab8..a9158a87582 100644
--- a/docs/release/src/mame/video/midtunit.cpp
+++ b/docs/release/src/mame/video/midtunit.cpp
@@ -902,7 +902,7 @@ void midtunit_video_device::log_bitmap(int command, int bpp, bool Skip)
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)
+ if (filerr)
{
return;
}
@@ -1029,7 +1029,7 @@ void midtunit_video_device::log_bitmap(int command, int bpp, bool Skip)
snprintf(name_buf, 255, "0x%08x.json", raw_offset);
auto const jsonerr = json.open(name_buf);
- if (jsonerr != osd_file::error::NONE)
+ if (jsonerr)
{
return;
}
diff --git a/docs/release/src/osd/winui/emu_opts.cpp b/docs/release/src/osd/winui/emu_opts.cpp
index 74a2445ba82..21bf6934407 100644
--- a/docs/release/src/osd/winui/emu_opts.cpp
+++ b/docs/release/src/osd/winui/emu_opts.cpp
@@ -174,11 +174,10 @@ string GetIniDir(void)
// load mewui settings
static void LoadSettingsFile(ui_options &opts, const char *filename)
{
- osd_file::error filerr;
util::core_file::ptr file;
- filerr = util::core_file::open(filename, OPEN_FLAG_READ, file);
- if (filerr == osd_file::error::NONE)
+ std::error_condition filerr = util::core_file::open(filename, OPEN_FLAG_READ, file);
+ if (!filerr)
{
opts.parse_ini_file(*file, OPTION_PRIORITY_CMDLINE, true, true);
file.reset();
@@ -188,11 +187,10 @@ static void LoadSettingsFile(ui_options &opts, const char *filename)
// load a game ini
static void LoadSettingsFile(windows_options &opts, const char *filename)
{
- osd_file::error filerr;
util::core_file::ptr file;
- filerr = util::core_file::open(filename, OPEN_FLAG_READ, file);
- if (filerr == osd_file::error::NONE)
+ std::error_condition filerr = util::core_file::open(filename, OPEN_FLAG_READ, file);
+ if (!filerr)
{
opts.parse_ini_file(*file, OPTION_PRIORITY_CMDLINE, true, true);
file.reset();
@@ -202,12 +200,11 @@ static void LoadSettingsFile(windows_options &opts, const char *filename)
// This saves changes to <game>.INI or MAME.INI only
static void SaveSettingsFile(windows_options &opts, const char *filename)
{
- osd_file::error filerr = osd_file::error::NONE;
util::core_file::ptr file;
- filerr = util::core_file::open(filename, OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS, file);
+ std::error_condition filerr = util::core_file::open(filename, OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS, file);
- if (filerr == osd_file::error::NONE)
+ if (!filerr)
{
string inistring = opts.output_ini();
// printf("=====%s=====\n%s\n",filename,inistring.c_str()); // for debugging
@@ -441,12 +438,11 @@ string dir_get_value(int dir_index)
// This saves changes to UI.INI only
static void SaveSettingsFile(ui_options &opts, const char *filename)
{
- osd_file::error filerr = osd_file::error::NONE;
util::core_file::ptr file;
- filerr = util::core_file::open(filename, OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS, file);
+ std::error_condition filerr = util::core_file::open(filename, OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS, file);
- if (filerr == osd_file::error::NONE)
+ if (!filerr)
{
string inistring = opts.output_ini();
file->puts(inistring.c_str());
diff --git a/docs/release/src/osd/winui/screenshot.cpp b/docs/release/src/osd/winui/screenshot.cpp
index eb7a942b874..0fd76f315c3 100644
--- a/docs/release/src/osd/winui/screenshot.cpp
+++ b/docs/release/src/osd/winui/screenshot.cpp
@@ -363,7 +363,7 @@ static bool png_read_bitmap_gui(util::core_file &mfile, HGLOBAL *phDIB, HPALETTE
File search functions
***************************************************************************/
-static osd_file::error OpenRawDIBFile(const char *dir_name, const char *filename, util::core_file::ptr &file)
+static std::error_condition OpenRawDIBFile(const char *dir_name, const char *filename, util::core_file::ptr &file)
{
// clear out result
file = NULL;
@@ -373,26 +373,26 @@ static osd_file::error OpenRawDIBFile(const char *dir_name, const char *filename
return util::core_file::open(fname.c_str(), OPEN_FLAG_READ, file);
}
-static osd_file::error OpenZipDIBFile(const char *dir_name, const char *zip_name, const char *filename, util::core_file::ptr &file, void **buffer)
+static std::error_condition OpenZipDIBFile(const char *dir_name, const char *zip_name, const char *filename, util::core_file::ptr &file, void **buffer)
{
- util::archive_file::error ziperr = util::archive_file::error::NONE;
util::archive_file::ptr zip;
+ std::error_condition ziperr{};
// clear out result
file = nullptr;
// look for the raw file
string fname = string(dir_name).append(PATH_SEPARATOR).append(filename);
- osd_file::error filerr = util::core_file::open(fname, OPEN_FLAG_READ, file);
+ std::error_condition filerr = util::core_file::open(fname, OPEN_FLAG_READ, file);
// did the raw file not exist?
- if (filerr != osd_file::error::NONE)
+ if (filerr)
{
// look into zip file
fname = std::string(dir_name).append(PATH_SEPARATOR).append(zip_name).append(".zip");
ziperr = util::archive_file::open_zip(fname, zip);
- if (ziperr == util::archive_file::error::NONE)
+ if (!ziperr)
{
int found = zip->search(filename, false);
@@ -401,7 +401,7 @@ static osd_file::error OpenZipDIBFile(const char *dir_name, const char *zip_name
*buffer = malloc(zip->current_uncompressed_length());
ziperr = zip->decompress(*buffer, zip->current_uncompressed_length());
- if (ziperr == util::archive_file::error::NONE)
+ if (!ziperr)
filerr = util::core_file::open_ram(*buffer, zip->current_uncompressed_length(), OPEN_FLAG_READ, file);
}
@@ -409,13 +409,13 @@ static osd_file::error OpenZipDIBFile(const char *dir_name, const char *zip_name
}
}
- if ((filerr != osd_file::error::NONE) || (ziperr != util::archive_file::error::NONE))
+ if (filerr || ziperr)
{
// look into 7z file
fname = std::string(dir_name).append(PATH_SEPARATOR).append(zip_name).append(".7z");
ziperr = util::archive_file::open_7z(fname, zip);
- if (ziperr == util::archive_file::error::NONE)
+ if (!ziperr)
{
int found = zip->search(filename, false);
@@ -424,7 +424,7 @@ static osd_file::error OpenZipDIBFile(const char *dir_name, const char *zip_name
*buffer = malloc(zip->current_uncompressed_length());
ziperr = zip->decompress(*buffer, zip->current_uncompressed_length());
- if (ziperr == util::archive_file::error::NONE)
+ if (!ziperr)
filerr = util::core_file::open_ram(*buffer, zip->current_uncompressed_length(), OPEN_FLAG_READ, file);
}
@@ -438,7 +438,7 @@ static osd_file::error OpenZipDIBFile(const char *dir_name, const char *zip_name
// display a snap, cabinet, title, flyer, marquee, pcb, control panel
static BOOL LoadDIB(const char *filename, HGLOBAL *phDIB, HPALETTE *pPal, int pic_type)
{
- osd_file::error filerr = osd_file::error::NOT_FOUND; // defined in osdcore.h
+ std::error_condition filerr = std::errc::no_such_file_or_directory;
util::core_file::ptr file = NULL;
char fullpath[2048];
const char* zip_name;
@@ -552,7 +552,7 @@ static BOOL LoadDIB(const char *filename, HGLOBAL *phDIB, HPALETTE *pPal, int pi
// Support multiple paths
char* partpath = strtok(fullpath, ";");
- while (partpath && filerr != osd_file::error::NONE)
+ while (partpath && filerr)
{
//Add handling for the displaying of all the different supported snapshot pattern types
@@ -564,21 +564,21 @@ static BOOL LoadDIB(const char *filename, HGLOBAL *phDIB, HPALETTE *pPal, int pi
filerr = OpenRawDIBFile(partpath, fname.c_str(), file);
// Try dir/system.zip/game.png
- if (filerr != osd_file::error::NONE)
+ if (filerr)
{
fname = string(file_name) + ext;
filerr = OpenZipDIBFile(partpath, system_name, fname.c_str(), file, &buffer);
}
// Try dir/system.zip/system/game.png
- if (filerr != osd_file::error::NONE)
+ if (filerr)
{
fname = string(system_name) + "/" + string(file_name) + ext;
filerr = OpenZipDIBFile(partpath, system_name, fname.c_str(), file, &buffer);
}
// Try dir/zipfile/system/game.png
- if (filerr != osd_file::error::NONE)
+ if (filerr)
{
filerr = OpenZipDIBFile(partpath, zip_name, fname.c_str(), file, &buffer);
}
@@ -588,7 +588,7 @@ static BOOL LoadDIB(const char *filename, HGLOBAL *phDIB, HPALETTE *pPal, int pi
// For SNAPS only, try filenames with 0000.png
if ((pic_type == TAB_SCREENSHOT) && (extnum == 0))
{
- if (filerr != osd_file::error::NONE)
+ if (filerr)
{
//%g/%i
fname = string(system_name) + PATH_SEPARATOR + "0000.png";
@@ -597,21 +597,21 @@ static BOOL LoadDIB(const char *filename, HGLOBAL *phDIB, HPALETTE *pPal, int pi
}
// Try dir/system.png %g
- if (filerr != osd_file::error::NONE)
+ if (filerr)
{
fname = string(system_name) + ext;
filerr = OpenRawDIBFile(partpath, fname.c_str(), file);
}
//%g/%g
- if (filerr != osd_file::error::NONE)
+ if (filerr)
{
fname = string(system_name) + PATH_SEPARATOR + string(system_name) + ext;
filerr = OpenRawDIBFile(partpath, fname.c_str(), file);
}
// Try dir/zipfile/system.png
- if (filerr != osd_file::error::NONE)
+ if (filerr)
{
fname = string(system_name) + ext;
filerr = OpenZipDIBFile(partpath, zip_name, fname.c_str(), file, &buffer);
@@ -620,7 +620,7 @@ static BOOL LoadDIB(const char *filename, HGLOBAL *phDIB, HPALETTE *pPal, int pi
partpath = strtok(NULL, ";");
}
- if (filerr == osd_file::error::NONE)
+ if (!filerr)
{
if (extnum)
success = jpeg_read_bitmap_gui(*file, phDIB, pPal);
@@ -733,7 +733,7 @@ BOOL LoadDIBBG(HGLOBAL *phDIB, HPALETTE *pPal)
// look for the raw file
string fname = GetBgDir();
- if (util::core_file::open(fname.c_str(), OPEN_FLAG_READ, file) == osd_file::error::NONE)
+ if (!util::core_file::open(fname.c_str(), OPEN_FLAG_READ, file))
{
success = png_read_bitmap_gui(*file, phDIB, pPal);
file.reset();
diff --git a/docs/release/src/osd/winui/winui.cpp b/docs/release/src/osd/winui/winui.cpp
index 7285c53666f..4947b50524b 100644
--- a/docs/release/src/osd/winui/winui.cpp
+++ b/docs/release/src/osd/winui/winui.cpp
@@ -1178,14 +1178,14 @@ HICON LoadIconFromFile(const char *iconname)
sprintf(tmpStr, "%s/icons.zip", s1);
sprintf(tmpIcoName, "%s.ico", iconname);
- if (util::archive_file::open_zip(tmpStr, zip) == util::archive_file::error::NONE)
+ if (!util::archive_file::open_zip(tmpStr, zip))
{
if (zip->search(tmpIcoName, false) >= 0)
{
bufferPtr = (PBYTE)malloc(zip->current_uncompressed_length());
if (bufferPtr)
{
- if (zip->decompress(bufferPtr, zip->current_uncompressed_length()) == util::archive_file::error::NONE)
+ if (!zip->decompress(bufferPtr, zip->current_uncompressed_length()))
hIcon = FormatICOInMemoryToHICON(bufferPtr, zip->current_uncompressed_length());
free(bufferPtr);
@@ -1198,14 +1198,14 @@ HICON LoadIconFromFile(const char *iconname)
sprintf(tmpStr, "%s/icons.7z", s1);
sprintf(tmpIcoName, "%s.ico", iconname);
- if (util::archive_file::open_7z(tmpStr, zip) == util::archive_file::error::NONE)
+ if (!util::archive_file::open_7z(tmpStr, zip))
{
if (zip->search(tmpIcoName, false) >= 0)
{
bufferPtr = (PBYTE)malloc(zip->current_uncompressed_length());
if (bufferPtr)
{
- if (zip->decompress(bufferPtr, zip->current_uncompressed_length()) == util::archive_file::error::NONE)
+ if (!zip->decompress(bufferPtr, zip->current_uncompressed_length()))
hIcon = FormatICOInMemoryToHICON(bufferPtr, zip->current_uncompressed_length());
free(bufferPtr);
@@ -5293,7 +5293,6 @@ static void MamePlayBackGame()
if (CommonFileDialog(GetOpenFileName, filename, FILETYPE_INPUT_FILES))
{
- osd_file::error fileerr;
char drive[_MAX_DRIVE];
char dir[_MAX_DIR];
char bare_fname[_MAX_FNAME];
@@ -5310,8 +5309,8 @@ static void MamePlayBackGame()
path[strlen(path)-1] = 0; // take off trailing back slash
emu_file pPlayBack(MameUIGlobal().input_directory(), OPEN_FLAG_READ);
- fileerr = pPlayBack.open(string(fname));
- if (fileerr != osd_file::error::NONE)
+ std::error_condition fileerr = pPlayBack.open(string(fname));
+ if (fileerr)
{
MameMessageBox("Could not open '%s' as a valid input file.", filename);
return;
@@ -5413,8 +5412,8 @@ static void MameLoadState()
}
#endif // MESS
emu_file pSaveState(MameUIGlobal().state_directory(), OPEN_FLAG_READ);
- osd_file::error fileerr = pSaveState.open(string(state_fname));
- if (fileerr != osd_file::error::NONE)
+ std::error_condition fileerr = pSaveState.open(string(state_fname));
+ if (fileerr)
{
MameMessageBox("Could not open '%s' as a valid savestate file.", filename);
return;
diff --git a/docs/release/src/version.cpp b/docs/release/src/version.cpp
index aead431ceec..c3695e2b74a 100644
--- a/docs/release/src/version.cpp
+++ b/docs/release/src/version.cpp
@@ -8,7 +8,7 @@
***************************************************************************/
-#define BARE_BUILD_VERSION "0.234"
+#define BARE_BUILD_VERSION "0.235"
extern const char bare_build_version[];
extern const char build_version[];
diff --git a/makefile b/makefile
index 62d72e8c459..bc5147e6b01 100644
--- a/makefile
+++ b/makefile
@@ -1755,14 +1755,14 @@ endif
ifeq (posix,$(SHELLTYPE))
$(GENDIR)/version.cpp: makefile $(GENDIR)/git_desc | $(GEN_FOLDERS)
- @echo '#define BARE_BUILD_VERSION "0.234"' > $@
+ @echo '#define BARE_BUILD_VERSION "0.235"' > $@
@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: makefile $(GENDIR)/git_desc | $(GEN_FOLDERS)
- @echo #define BARE_BUILD_VERSION "0.234" > $@
+ @echo #define BARE_BUILD_VERSION "0.235" > $@
@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/hbmame/drivers/atarig42.cpp b/src/hbmame/drivers/atarig42.cpp
index e8f1376f299..08faa237818 100644
--- a/src/hbmame/drivers/atarig42.cpp
+++ b/src/hbmame/drivers/atarig42.cpp
@@ -3,7 +3,7 @@
#include "../mame/drivers/atarig42.cpp"
-
+#if 0
class dangerex_state : public atarig42_0x400_state
{
public:
@@ -123,4 +123,6 @@ void dangerex_state::init_dangerex()
GAME( 1992, dangerex, 0, atarig42_0x400, dangerex, dangerex_state, init_dangerex, ROT0, "Atari Games", "Danger Express (prototype)", 0 )
+#endif
+
diff --git a/src/version.cpp b/src/version.cpp
index aead431ceec..c3695e2b74a 100644
--- a/src/version.cpp
+++ b/src/version.cpp
@@ -8,7 +8,7 @@
***************************************************************************/
-#define BARE_BUILD_VERSION "0.234"
+#define BARE_BUILD_VERSION "0.235"
extern const char bare_build_version[];
extern const char build_version[];