summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author Robbbert <Robbbert@users.noreply.github.com>2018-12-26 01:01:57 +1100
committer Robbbert <Robbbert@users.noreply.github.com>2018-12-26 01:01:57 +1100
commit796382ccc3e6520b97f321d342d9c99722ecece3 (patch)
tree06f7daa04523b4cb1ceb72ca73c395cbcccfd226
parent61e04eda36dcc37c60539f8d91faa0f350613432 (diff)
0.205 Release filestag205
-rw-r--r--docs/release/build/newsrc.bat10
-rw-r--r--docs/release/build/uprel.bat4
-rw-r--r--docs/release/hbmame205s.rar (renamed from docs/release/hbmame204s.rar)bin3660876 -> 3671174 bytes
-rw-r--r--docs/release/scripts/genie.lua46
-rw-r--r--docs/release/scripts/src/3rdparty.lua10
-rw-r--r--docs/release/scripts/src/bus.lua8
-rw-r--r--docs/release/scripts/src/cpu.lua25
-rw-r--r--docs/release/scripts/target/hbmame/hbmame.lua9
-rw-r--r--docs/release/scripts/target/mame/arcade.lua14
-rw-r--r--docs/release/scripts/target/mame/mess.lua22
-rw-r--r--docs/release/scripts/toolchain.lua72
-rw-r--r--docs/release/src/devices/video/vector.cpp200
-rw-r--r--docs/release/src/emu/emuopts.cpp64
-rw-r--r--docs/release/src/emu/validity.cpp2
-rw-r--r--docs/release/src/hbmame/drivers/atarig42.cpp126
-rw-r--r--docs/release/src/hbmame/drivers/dkong.cpp58
-rw-r--r--docs/release/src/hbmame/drivers/galaga.cpp8
-rw-r--r--docs/release/src/hbmame/drivers/galaxian.cpp139
-rw-r--r--docs/release/src/hbmame/drivers/ir.cpp8
-rw-r--r--docs/release/src/hbmame/drivers/jrpacman.cpp6
-rw-r--r--docs/release/src/hbmame/drivers/mhavoc.cpp88
-rw-r--r--docs/release/src/hbmame/drivers/monaco.cpp8
-rw-r--r--docs/release/src/hbmame/drivers/neogeo1.cpp25
-rw-r--r--docs/release/src/hbmame/drivers/pacman.cpp6
-rw-r--r--docs/release/src/hbmame/drivers/schaser.cpp45
-rw-r--r--docs/release/src/hbmame/drivers/segac2.cpp41
-rw-r--r--docs/release/src/hbmame/drivers/spacmiss.cpp8
-rw-r--r--docs/release/src/hbmame/drivers/ssv.cpp6
-rw-r--r--docs/release/src/hbmame/drivers/tempest.cpp85
-rw-r--r--docs/release/src/hbmame/hbmame.lst19
-rw-r--r--docs/release/src/hbmame/video/galaxian.cpp87
-rw-r--r--docs/release/src/mame/drivers/jrpacman.cpp48
-rw-r--r--docs/release/src/mame/drivers/model2.cpp327
-rw-r--r--docs/release/src/mame/includes/mhavoc.h102
-rw-r--r--docs/release/src/mame/includes/timelimt.h71
-rw-r--r--docs/release/src/mame/machine/mhavoc.cpp331
-rw-r--r--docs/release/src/osd/windows/winmain.cpp70
-rw-r--r--docs/release/src/version.cpp2
-rw-r--r--makefile4
-rw-r--r--src/version.cpp2
40 files changed, 1575 insertions, 631 deletions
diff --git a/docs/release/build/newsrc.bat b/docs/release/build/newsrc.bat
index 24311ad2a2e..6bb7250147a 100644
--- a/docs/release/build/newsrc.bat
+++ b/docs/release/build/newsrc.bat
@@ -22,10 +22,20 @@ md %to%\src\devices\cpu\m68000
copy /Y %from%\src\devices\cpu\m68000\m68kcpu.cpp %to%\src\devices\cpu\m68000
copy /Y %from%\src\devices\cpu\m68000\m68k_in.cpp %to%\src\devices\cpu\m68000
+md %to%\src\devices\video
+copy /Y %from%\src\devices\video\vector.cpp %to%\src\devices\video
+
md %to%\src\mame\drivers
copy /Y %from%\src\mame\drivers\jrpacman.cpp %to%\src\mame\drivers
copy /Y %from%\src\mame\drivers\model2.cpp %to%\src\mame\drivers
+md %to%\src\mame\includes
+copy /Y %from%\src\mame\includes\mhavoc.h %to%\src\mame\includes
+copy /Y %from%\src\mame\includes\timelimt.h %to%\src\mame\includes
+
+md %to%\src\mame\machine
+copy /Y %from%\src\mame\machine\mhavoc.cpp %to%\src\mame\machine
+
md %to%\src\hbmame
xcopy /E /Y %from%\src\hbmame %to%\src\hbmame
diff --git a/docs/release/build/uprel.bat b/docs/release/build/uprel.bat
index f8b0d01f4b4..427838ac412 100644
--- a/docs/release/build/uprel.bat
+++ b/docs/release/build/uprel.bat
@@ -1,6 +1,6 @@
-//goto end
+\goto end
git fetch upstream
-git merge upstream/release0204
+git merge upstream/release0205
git checkout master
:end
pause
diff --git a/docs/release/hbmame204s.rar b/docs/release/hbmame205s.rar
index 77de4353e7c..f24e0b71ae3 100644
--- a/docs/release/hbmame204s.rar
+++ b/docs/release/hbmame205s.rar
Binary files differ
diff --git a/docs/release/scripts/genie.lua b/docs/release/scripts/genie.lua
index b11b99203d4..46a4f9310d9 100644
--- a/docs/release/scripts/genie.lua
+++ b/docs/release/scripts/genie.lua
@@ -219,7 +219,27 @@ newoption {
newoption {
trigger = "ARCHOPTS",
- description = "ARCHOPTS.",
+ description = "Additional options for target C/C++/Objective-C/Objective-C++ compilers and linker.",
+}
+
+newoption {
+ trigger = "ARCHOPTS_C",
+ description = "Additional options for target C++ compiler.",
+}
+
+newoption {
+ trigger = "ARCHOPTS_CXX",
+ description = "Additional options for target C++ compiler.",
+}
+
+newoption {
+ trigger = "ARCHOPTS_OBJC",
+ description = "Additional options for target Objective-C compiler.",
+}
+
+newoption {
+ trigger = "ARCHOPTS_OBJCXX",
+ description = "Additional options for target Objective-C++ compiler.",
}
newoption {
@@ -869,6 +889,30 @@ if _OPTIONS["ARCHOPTS"] then
}
end
+if _OPTIONS["ARCHOPTS_C"] then
+ buildoptions_c {
+ _OPTIONS["ARCHOPTS_C"]
+ }
+end
+
+if _OPTIONS["ARCHOPTS_CXX"] then
+ buildoptions_cpp {
+ _OPTIONS["ARCHOPTS_CXX"]
+ }
+end
+
+if _OPTIONS["ARCHOPTS_OBJC"] then
+ buildoptions_objc {
+ _OPTIONS["ARCHOPTS_OBJC"]
+ }
+end
+
+if _OPTIONS["ARCHOPTS_OBJCXX"] then
+ buildoptions_objcpp {
+ _OPTIONS["ARCHOPTS_OBJCXX"]
+ }
+end
+
if _OPTIONS["SHLIB"] then
buildoptions {
"-fPIC"
diff --git a/docs/release/scripts/src/3rdparty.lua b/docs/release/scripts/src/3rdparty.lua
index 7c1cc4acf4c..2ccfa749e19 100644
--- a/docs/release/scripts/src/3rdparty.lua
+++ b/docs/release/scripts/src/3rdparty.lua
@@ -1198,6 +1198,7 @@ project "bimg"
files {
MAME_DIR .. "3rdparty/bimg/src/image.cpp",
+ MAME_DIR .. "3rdparty/bimg/src/image_gnf.cpp",
}
--------------------------------------------------
@@ -1324,12 +1325,10 @@ end
files {
MAME_DIR .. "3rdparty/bgfx/src/bgfx.cpp",
MAME_DIR .. "3rdparty/bgfx/src/debug_renderdoc.cpp",
+ MAME_DIR .. "3rdparty/bgfx/src/dxgi.cpp",
MAME_DIR .. "3rdparty/bgfx/src/glcontext_egl.cpp",
MAME_DIR .. "3rdparty/bgfx/src/glcontext_glx.cpp",
MAME_DIR .. "3rdparty/bgfx/src/glcontext_wgl.cpp",
- MAME_DIR .. "3rdparty/bgfx/src/hmd.cpp",
- MAME_DIR .. "3rdparty/bgfx/src/hmd_ovr.cpp",
- MAME_DIR .. "3rdparty/bgfx/src/hmd_openvr.cpp",
MAME_DIR .. "3rdparty/bgfx/src/nvapi.cpp",
MAME_DIR .. "3rdparty/bgfx/src/renderer_d3d11.cpp",
MAME_DIR .. "3rdparty/bgfx/src/renderer_d3d12.cpp",
@@ -1347,8 +1346,9 @@ end
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/ocornut-imgui/imgui.cpp",
- MAME_DIR .. "3rdparty/bgfx/3rdparty/ocornut-imgui/imgui_draw.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_widgets.cpp",
}
if _OPTIONS["targetos"]=="macosx" then
files {
diff --git a/docs/release/scripts/src/bus.lua b/docs/release/scripts/src/bus.lua
index c16acbe2dde..dc6bbd80a91 100644
--- a/docs/release/scripts/src/bus.lua
+++ b/docs/release/scripts/src/bus.lua
@@ -349,8 +349,12 @@ if (BUSES["BBC_1MHZBUS"]~=null) then
MAME_DIR .. "src/devices/bus/bbc/1mhzbus/1mhzbus.h",
MAME_DIR .. "src/devices/bus/bbc/1mhzbus/beebsid.cpp",
MAME_DIR .. "src/devices/bus/bbc/1mhzbus/beebsid.h",
+ MAME_DIR .. "src/devices/bus/bbc/1mhzbus/emrmidi.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/1mhzbus/emrmidi.h",
MAME_DIR .. "src/devices/bus/bbc/1mhzbus/ieee488.cpp",
MAME_DIR .. "src/devices/bus/bbc/1mhzbus/ieee488.h",
+ MAME_DIR .. "src/devices/bus/bbc/1mhzbus/m2000.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/1mhzbus/m2000.h",
MAME_DIR .. "src/devices/bus/bbc/1mhzbus/opus3.cpp",
MAME_DIR .. "src/devices/bus/bbc/1mhzbus/opus3.h",
MAME_DIR .. "src/devices/bus/bbc/1mhzbus/cfa3000opt.cpp",
@@ -3055,6 +3059,8 @@ if (BUSES["ZORRO"]~=null) then
MAME_DIR .. "src/devices/bus/amiga/zorro/cards.h",
MAME_DIR .. "src/devices/bus/amiga/zorro/a2052.cpp",
MAME_DIR .. "src/devices/bus/amiga/zorro/a2052.h",
+ MAME_DIR .. "src/devices/bus/amiga/zorro/a2058.cpp",
+ MAME_DIR .. "src/devices/bus/amiga/zorro/a2058.h",
MAME_DIR .. "src/devices/bus/amiga/zorro/a2065.cpp",
MAME_DIR .. "src/devices/bus/amiga/zorro/a2065.h",
MAME_DIR .. "src/devices/bus/amiga/zorro/a2232.cpp",
@@ -3472,6 +3478,8 @@ if (BUSES["HP9845_IO"]~=null) then
files {
MAME_DIR .. "src/devices/bus/hp9845_io/hp9845_io.cpp",
MAME_DIR .. "src/devices/bus/hp9845_io/hp9845_io.h",
+ MAME_DIR .. "src/devices/bus/hp9845_io/98032.cpp",
+ MAME_DIR .. "src/devices/bus/hp9845_io/98032.h",
MAME_DIR .. "src/devices/bus/hp9845_io/98034.cpp",
MAME_DIR .. "src/devices/bus/hp9845_io/98034.h",
MAME_DIR .. "src/devices/bus/hp9845_io/98035.cpp",
diff --git a/docs/release/scripts/src/cpu.lua b/docs/release/scripts/src/cpu.lua
index f8503ac9056..08fe95f7f68 100644
--- a/docs/release/scripts/src/cpu.lua
+++ b/docs/release/scripts/src/cpu.lua
@@ -66,6 +66,26 @@ if (CPUS["8X300"]~=null or _OPTIONS["with-tools"]) then
end
--------------------------------------------------
+-- 3DO Don's Super Performing Processor (DSPP)
+--@src/devices/cpu/dspp/dspp.h,CPUS["DSPP"] = true
+--------------------------------------------------
+
+if (CPUS["DSPP"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/dspp/dspp.cpp",
+ MAME_DIR .. "src/devices/cpu/dspp/dspp.h",
+ MAME_DIR .. "src/devices/cpu/dspp/dsppdrc.cpp",
+ MAME_DIR .. "src/devices/cpu/dspp/dsppfe.cpp",
+ MAME_DIR .. "src/devices/cpu/dspp/dsppfe.h",
+ }
+end
+
+if (CPUS["DSPP"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/dspp/dsppdasm.cpp")
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/dspp/dsppdasm.h")
+end
+
+--------------------------------------------------
-- ARCangent A4
--@src/devices/cpu/arc/arc.h,CPUS["ARC"] = true
--------------------------------------------------
@@ -988,12 +1008,16 @@ if (CPUS["MCS51"]~=null) then
MAME_DIR .. "src/devices/cpu/mcs51/mcs51.cpp",
MAME_DIR .. "src/devices/cpu/mcs51/mcs51.h",
MAME_DIR .. "src/devices/cpu/mcs51/mcs51ops.hxx",
+ MAME_DIR .. "src/devices/cpu/mcs51/axc51-core.cpp",
+ MAME_DIR .. "src/devices/cpu/mcs51/axc51-core.h",
}
end
if (CPUS["MCS51"]~=null or _OPTIONS["with-tools"]) then
table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/mcs51/mcs51dasm.cpp")
table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/mcs51/mcs51dasm.h")
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/mcs51/axc51-core_dasm.cpp")
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/mcs51/axc51-core_dasm.h")
end
--------------------------------------------------
@@ -1073,6 +1097,7 @@ if (CPUS["I386"]~=null) then
MAME_DIR .. "src/devices/cpu/i386/pentops.hxx",
MAME_DIR .. "src/devices/cpu/i386/x87ops.hxx",
MAME_DIR .. "src/devices/cpu/i386/x87priv.h",
+ MAME_DIR .. "src/devices/cpu/i386/cpuidmsrs.hxx",
}
end
diff --git a/docs/release/scripts/target/hbmame/hbmame.lua b/docs/release/scripts/target/hbmame/hbmame.lua
index 591866bbbb5..ea239f09cf2 100644
--- a/docs/release/scripts/target/hbmame/hbmame.lua
+++ b/docs/release/scripts/target/hbmame/hbmame.lua
@@ -334,6 +334,11 @@ createHBMAMEProjects(_target, _subtarget, "atari")
files {
MAME_DIR .. "src/hbmame/drivers/asteroid.cpp",
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/asic65.cpp",
+ MAME_DIR .. "src/mame/video/atarirle.cpp",
+ MAME_DIR .. "src/mame/audio/atarijsa.cpp",
MAME_DIR .. "src/hbmame/drivers/atarisy1.cpp",
MAME_DIR .. "src/mame/video/atarisy1.cpp",
MAME_DIR .. "src/mame/audio/asteroid.cpp",
@@ -351,6 +356,8 @@ files {
MAME_DIR .. "src/mame/audio/llander.cpp",
MAME_DIR .. "src/mame/video/atarimo.cpp",
MAME_DIR .. "src/mame/video/avgdvg.cpp",
+ MAME_DIR .. "src/hbmame/drivers/mhavoc.cpp",
+ MAME_DIR .. "src/mame/machine/mhavoc.cpp",
}
createHBMAMEProjects(_target, _subtarget, "atlus")
@@ -614,7 +621,7 @@ files {
MAME_DIR .. "src/mame/video/xevious.cpp",
MAME_DIR .. "src/hbmame/drivers/galaxian.cpp",
MAME_DIR .. "src/mame/audio/galaxian.cpp",
- MAME_DIR .. "src/hbmame/video/galaxian.cpp",
+ MAME_DIR .. "src/mame/video/galaxian.cpp",
MAME_DIR .. "src/hbmame/drivers/mappy.cpp",
MAME_DIR .. "src/mame/video/mappy.cpp",
MAME_DIR .. "src/hbmame/drivers/pacland.cpp",
diff --git a/docs/release/scripts/target/mame/arcade.lua b/docs/release/scripts/target/mame/arcade.lua
index 2c2dca39817..e7549a60042 100644
--- a/docs/release/scripts/target/mame/arcade.lua
+++ b/docs/release/scripts/target/mame/arcade.lua
@@ -132,6 +132,7 @@ CPUS["HMCS40"] = true
--CPUS["HPHYBRID"] = true
--CPUS["SM510"] = true
CPUS["ST62XX"] = true
+CPUS["DSPP"] = true
--------------------------------------------------
-- specify available sound cores
@@ -1678,6 +1679,7 @@ files {
MAME_DIR .. "src/mame/drivers/vaportra.cpp",
MAME_DIR .. "src/mame/includes/vaportra.h",
MAME_DIR .. "src/mame/video/vaportra.cpp",
+ MAME_DIR .. "src/mame/drivers/wacky_gator.cpp",
MAME_DIR .. "src/mame/machine/deco_irq.cpp",
MAME_DIR .. "src/mame/machine/deco_irq.h",
MAME_DIR .. "src/mame/machine/deco102.cpp",
@@ -1749,7 +1751,7 @@ files {
MAME_DIR .. "src/mame/drivers/stlforce.cpp",
MAME_DIR .. "src/mame/includes/stlforce.h",
MAME_DIR .. "src/mame/video/edevices.cpp",
- MAME_DIR .. "src/mame/video/edevices.h",
+ MAME_DIR .. "src/mame/video/edevices.h",
MAME_DIR .. "src/mame/drivers/mugsmash.cpp",
MAME_DIR .. "src/mame/includes/mugsmash.h",
MAME_DIR .. "src/mame/video/mugsmash.cpp",
@@ -2359,6 +2361,10 @@ files {
MAME_DIR .. "src/mame/machine/konamigx.cpp",
MAME_DIR .. "src/mame/video/konamigx.cpp",
MAME_DIR .. "src/mame/drivers/konamim2.cpp",
+ MAME_DIR .. "src/mame/machine/3dom2.cpp",
+ MAME_DIR .. "src/mame/machine/3dom2.h",
+ MAME_DIR .. "src/mame/video/3dom2_te.cpp",
+ MAME_DIR .. "src/mame/video/3dom2_te.h",
MAME_DIR .. "src/mame/drivers/konblands.cpp",
MAME_DIR .. "src/mame/drivers/konmedal.cpp",
MAME_DIR .. "src/mame/drivers/konmedal68k.cpp",
@@ -2708,6 +2714,8 @@ files {
MAME_DIR .. "src/mame/audio/midway.h",
MAME_DIR .. "src/mame/audio/csd.cpp",
MAME_DIR .. "src/mame/audio/csd.h",
+ MAME_DIR .. "src/mame/audio/sente6vb.cpp",
+ MAME_DIR .. "src/mame/audio/sente6vb.h",
}
createMAMEProjects(_target, _subtarget, "namco")
@@ -3469,6 +3477,7 @@ files {
MAME_DIR .. "src/mame/machine/xbox.cpp",
MAME_DIR .. "src/mame/machine/xbox_usb.cpp",
MAME_DIR .. "src/mame/machine/xbox_pci.cpp",
+ MAME_DIR .. "src/mame/drivers/flashbeats.cpp",
}
createMAMEProjects(_target, _subtarget, "seibu")
@@ -4731,6 +4740,7 @@ files {
MAME_DIR .. "src/mame/drivers/midas.cpp",
MAME_DIR .. "src/mame/drivers/mil4000.cpp",
MAME_DIR .. "src/mame/drivers/miniboy7.cpp",
+ MAME_DIR .. "src/mame/drivers/minivideo.cpp",
MAME_DIR .. "src/mame/drivers/mirax.cpp",
MAME_DIR .. "src/mame/drivers/mjsenpu.cpp",
MAME_DIR .. "src/mame/drivers/mole.cpp",
@@ -4793,6 +4803,7 @@ files {
MAME_DIR .. "src/mame/drivers/re900.cpp",
MAME_DIR .. "src/mame/drivers/rgum.cpp",
MAME_DIR .. "src/mame/drivers/roul.cpp",
+ MAME_DIR .. "src/mame/drivers/rulechan.cpp",
MAME_DIR .. "src/mame/drivers/savquest.cpp",
MAME_DIR .. "src/mame/drivers/sanremo.cpp",
MAME_DIR .. "src/mame/drivers/sanremmg.cpp",
@@ -4867,7 +4878,6 @@ files {
MAME_DIR .. "src/mame/drivers/vroulet.cpp",
MAME_DIR .. "src/mame/drivers/wildpkr.cpp",
MAME_DIR .. "src/mame/drivers/wms.cpp",
- MAME_DIR .. "src/mame/drivers/wacky_gator.cpp",
MAME_DIR .. "src/mame/drivers/xtom3d.cpp",
MAME_DIR .. "src/mame/drivers/xyonix.cpp",
MAME_DIR .. "src/mame/includes/xyonix.h",
diff --git a/docs/release/scripts/target/mame/mess.lua b/docs/release/scripts/target/mame/mess.lua
index 8e4ba283ab3..753c100681b 100644
--- a/docs/release/scripts/target/mame/mess.lua
+++ b/docs/release/scripts/target/mame/mess.lua
@@ -136,6 +136,7 @@ CPUS["MB86901"] = true
CPUS["NANOPROCESSOR"] = true
CPUS["CLIPPER"] = true
CPUS["CAPRICORN"] = true
+--CPUS["DSPP"] = true
--------------------------------------------------
-- specify available sound cores; some of these are
@@ -1106,6 +1107,7 @@ function linkProjects_mame_mess(_target, _subtarget)
"mos",
"motorola",
"multitch",
+ "mupid",
"nakajima",
"nascom",
"ncd",
@@ -2248,6 +2250,8 @@ files {
MAME_DIR .. "src/mame/machine/hp9825_tape.h",
MAME_DIR .. "src/mame/machine/hp9845_printer.cpp",
MAME_DIR .. "src/mame/machine/hp9845_printer.h",
+ MAME_DIR .. "src/mame/machine/hp98x5_io_sys.cpp",
+ MAME_DIR .. "src/mame/machine/hp98x5_io_sys.h",
MAME_DIR .. "src/mame/video/hp48.cpp",
MAME_DIR .. "src/mame/drivers/hp49gp.cpp",
MAME_DIR .. "src/mame/drivers/hp9845.cpp",
@@ -2260,6 +2264,7 @@ files {
MAME_DIR .. "src/mame/drivers/hp2620.cpp",
MAME_DIR .. "src/mame/drivers/hp700.cpp",
MAME_DIR .. "src/mame/drivers/hp2640.cpp",
+ MAME_DIR .. "src/mame/drivers/hp95lx.cpp",
MAME_DIR .. "src/mame/drivers/hp9825.cpp",
}
@@ -2503,6 +2508,8 @@ createMESSProjects(_target, _subtarget, "mips")
files {
MAME_DIR .. "src/mame/drivers/mips.cpp",
MAME_DIR .. "src/mame/includes/mips.h",
+ MAME_DIR .. "src/mame/machine/mips_rambo.h",
+ MAME_DIR .. "src/mame/machine/mips_rambo.cpp",
}
createMESSProjects(_target, _subtarget, "mit")
@@ -2561,6 +2568,12 @@ files {
MAME_DIR .. "src/mame/includes/mpf1.h",
}
+createMESSProjects(_target, _subtarget, "mupid")
+files {
+ MAME_DIR .. "src/mame/drivers/mdisk.cpp",
+ MAME_DIR .. "src/mame/drivers/mupid2.cpp",
+}
+
createMESSProjects(_target, _subtarget, "nakajima")
files {
MAME_DIR .. "src/mame/drivers/nakajies.cpp",
@@ -3050,6 +3063,7 @@ files {
MAME_DIR .. "src/mame/includes/mz700.h",
MAME_DIR .. "src/mame/drivers/pc1500.cpp",
MAME_DIR .. "src/mame/drivers/pocketc.cpp",
+ MAME_DIR .. "src/mame/machine/pocketc.cpp",
MAME_DIR .. "src/mame/includes/pocketc.h",
MAME_DIR .. "src/mame/video/pc1401.cpp",
MAME_DIR .. "src/mame/machine/pc1401.cpp",
@@ -3286,6 +3300,7 @@ files {
MAME_DIR .. "src/mame/drivers/tv965.cpp",
MAME_DIR .. "src/mame/drivers/tv990.cpp",
MAME_DIR .. "src/mame/drivers/ts3000.cpp",
+ MAME_DIR .. "src/mame/machine/tv955kb.cpp",
}
createMESSProjects(_target, _subtarget, "tem")
@@ -3593,6 +3608,7 @@ files {
MAME_DIR .. "src/mame/audio/socrates.cpp",
MAME_DIR .. "src/mame/audio/socrates.h",
MAME_DIR .. "src/mame/drivers/inteladv.cpp",
+ MAME_DIR .. "src/mame/drivers/vsmile.cpp",
}
createMESSProjects(_target, _subtarget, "wang")
@@ -3697,6 +3713,7 @@ files {
MAME_DIR .. "src/mame/includes/busicom.h",
MAME_DIR .. "src/mame/video/busicom.cpp",
MAME_DIR .. "src/mame/drivers/candela.cpp",
+ MAME_DIR .. "src/mame/drivers/cardinal.cpp",
MAME_DIR .. "src/mame/drivers/chaos.cpp",
MAME_DIR .. "src/mame/drivers/chesstrv.cpp",
MAME_DIR .. "src/mame/drivers/cd2650.cpp",
@@ -3736,6 +3753,7 @@ files {
MAME_DIR .. "src/mame/drivers/eacc.cpp",
MAME_DIR .. "src/mame/drivers/elwro800.cpp",
MAME_DIR .. "src/mame/drivers/emate.cpp",
+ MAME_DIR .. "src/mame/drivers/epic14e.cpp",
MAME_DIR .. "src/mame/drivers/esprit.cpp",
MAME_DIR .. "src/mame/drivers/eti660.cpp",
MAME_DIR .. "src/mame/includes/eti660.h",
@@ -3748,6 +3766,7 @@ files {
MAME_DIR .. "src/mame/drivers/fanucspmg.cpp",
MAME_DIR .. "src/mame/drivers/fc100.cpp",
MAME_DIR .. "src/mame/drivers/fk1.cpp",
+ MAME_DIR .. "src/mame/drivers/fs3216.cpp",
MAME_DIR .. "src/mame/drivers/ft68m.cpp",
MAME_DIR .. "src/mame/drivers/gameking.cpp",
MAME_DIR .. "src/mame/drivers/gimix.cpp",
@@ -3756,6 +3775,7 @@ files {
MAME_DIR .. "src/mame/drivers/harriet.cpp",
MAME_DIR .. "src/mame/drivers/hazeltin.cpp",
MAME_DIR .. "src/mame/drivers/hazl1420.cpp",
+ MAME_DIR .. "src/mame/drivers/hp3478a.cpp",
MAME_DIR .. "src/mame/drivers/hprot1.cpp",
MAME_DIR .. "src/mame/drivers/hpz80unk.cpp",
MAME_DIR .. "src/mame/drivers/ht68k.cpp",
@@ -3804,6 +3824,7 @@ files {
MAME_DIR .. "src/mame/drivers/mod8.cpp",
MAME_DIR .. "src/mame/drivers/modellot.cpp",
MAME_DIR .. "src/mame/drivers/molecular.cpp",
+ MAME_DIR .. "src/mame/drivers/monon_color.cpp",
MAME_DIR .. "src/mame/drivers/ms0515.cpp",
MAME_DIR .. "src/mame/drivers/ms9540.cpp",
MAME_DIR .. "src/mame/drivers/mstation.cpp",
@@ -3849,6 +3870,7 @@ files {
MAME_DIR .. "src/mame/drivers/sh4robot.cpp",
MAME_DIR .. "src/mame/drivers/sansa_fuze.cpp",
MAME_DIR .. "src/mame/drivers/scopus.cpp",
+ MAME_DIR .. "src/mame/drivers/shine.cpp",
MAME_DIR .. "src/mame/drivers/si5500.cpp",
MAME_DIR .. "src/mame/drivers/softbox.cpp",
MAME_DIR .. "src/mame/includes/softbox.h",
diff --git a/docs/release/scripts/toolchain.lua b/docs/release/scripts/toolchain.lua
index f270d3f69b8..e596c06bfb0 100644
--- a/docs/release/scripts/toolchain.lua
+++ b/docs/release/scripts/toolchain.lua
@@ -16,13 +16,14 @@ newoption {
description = "Choose GCC flavor",
allowed = {
{ "android-arm", "Android - ARM" },
- { "android-arm64", "Android - ARM64" },
+ { "android-arm64", "Android - ARM64" },
{ "android-mips", "Android - MIPS" },
{ "android-mips64","Android - MIPS64" },
{ "android-x86", "Android - x86" },
{ "android-x64", "Android - x64" },
{ "asmjs", "Emscripten/asm.js" },
{ "freebsd", "FreeBSD" },
+ { "freebsd-clang", "FreeBSD (clang compiler)"},
{ "linux-gcc", "Linux (GCC compiler)" },
{ "linux-clang", "Linux (Clang compiler)" },
{ "ios-arm", "iOS - ARM" },
@@ -31,6 +32,7 @@ newoption {
{ "mingw64-gcc", "MinGW64" },
{ "mingw-clang", "MinGW (clang compiler)" },
{ "netbsd", "NetBSD" },
+ { "netbsd-clang", "NetBSD (clang compiler)"},
{ "openbsd", "OpenBSD" },
{ "osx", "OSX (GCC compiler)" },
{ "osx-clang", "OSX (Clang compiler)" },
@@ -92,11 +94,11 @@ function toolchain(_buildDir, _subDir)
location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION)
- local androidPlatform = "android-21"
+ local androidPlatform = "android-24"
if _OPTIONS["with-android"] then
androidPlatform = "android-" .. _OPTIONS["with-android"]
elseif _OPTIONS["PLATFORM"]:find("64", -2) then
- androidPlatform = "android-21"
+ androidPlatform = "android-24"
end
local iosPlatform = ""
@@ -168,10 +170,18 @@ function toolchain(_buildDir, _subDir)
location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-freebsd")
end
+ if "freebsd-clang" == _OPTIONS["gcc"] then
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-freebsd-clang")
+ end
+
if "netbsd" == _OPTIONS["gcc"] then
location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-netbsd")
end
+ if "netbsd-clang" == _OPTIONS["gcc"] then
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-netbsd-clang")
+ end
+
if "openbsd" == _OPTIONS["gcc"] then
location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-openbsd")
end
@@ -837,6 +847,7 @@ function toolchain(_buildDir, _subDir)
MAME_DIR .. "3rdparty/bgfx/3rdparty/khronos",
"$(ANDROID_NDK_ROOT)/sources/cxx-stl/llvm-libc++/libcxx/include",
"$(ANDROID_NDK_ROOT)/sources/cxx-stl/llvm-libc++/include",
+ "$(ANDROID_NDK_ROOT)/sysroot/usr/include",
"$(ANDROID_NDK_ROOT)/sources/android/support/include",
"$(ANDROID_NDK_ROOT)/sources/android/native_app_glue",
}
@@ -854,10 +865,12 @@ function toolchain(_buildDir, _subDir)
"log",
"c++_static",
"c++abi",
- "android_support",
"stdc++",
"gcc",
}
+ buildoptions_c {
+ "-Wno-strict-prototypes",
+ }
buildoptions {
"-fpic",
"-ffunction-sections",
@@ -870,6 +883,8 @@ function toolchain(_buildDir, _subDir)
"-Wno-cast-align",
"-Wno-unknown-attributes",
"-Wno-macro-redefined",
+ "-DASIO_HAS_STD_STRING_VIEW",
+ "-Wno-unused-function",
}
linkoptions {
"-no-canonical-prefixes",
@@ -883,11 +898,10 @@ function toolchain(_buildDir, _subDir)
configuration { "android-arm" }
libdirs {
"$(ANDROID_NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a",
- "$(ANDROID_NDK_ARM)/lib/gcc/arm-linux-androideabi/4.9.x/armv7-a",
"$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-arm/usr/lib",
}
includedirs {
- "$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-arm/usr/include",
+ "$(ANDROID_NDK_ROOT)/sysroot/usr/include/arm-linux-androideabi",
}
buildoptions {
"-gcc-toolchain $(ANDROID_NDK_ARM)",
@@ -916,7 +930,7 @@ function toolchain(_buildDir, _subDir)
"$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-arm64/usr/lib64",
}
includedirs {
- "$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-arm64/usr/include",
+ "$(ANDROID_NDK_ROOT)/sysroot/usr/include/aarch64-linux-android",
}
buildoptions {
"-gcc-toolchain $(ANDROID_NDK_ARM64)",
@@ -930,53 +944,13 @@ function toolchain(_buildDir, _subDir)
"-target aarch64-none-linux-android",
}
- configuration { "android-mips" }
- libdirs {
- "$(ANDROID_NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/mips",
- "$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-mips/usr/lib/",
- }
- includedirs {
- "$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-mips/usr/include",
- }
- buildoptions {
- "-gcc-toolchain $(ANDROID_NDK_MIPS)",
- "-target mipsel-none-linux-android",
- }
- linkoptions {
- "-gcc-toolchain $(ANDROID_NDK_MIPS)",
- "-target mipsel-none-linux-android",
- "--sysroot=$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-mips",
- "$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-mips/usr/lib/crtbegin_so.o",
- "$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-mips/usr/lib/crtend_so.o",
- }
-
- configuration { "android-mips64" }
- libdirs {
- "$(ANDROID_NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/mips64",
- "$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-mips64/usr/lib64/",
- }
- includedirs {
- "$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-mips64/usr/include",
- }
- buildoptions {
- "-gcc-toolchain $(ANDROID_NDK_MIPS64)",
- "-target mips64el-none-linux-android",
- }
- linkoptions {
- "-gcc-toolchain $(ANDROID_NDK_MIPS64)",
- "-target mips64el-none-linux-android",
- "--sysroot=$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-mips64",
- "$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-mips64/usr/lib64/crtbegin_so.o",
- "$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-mips64/usr/lib64/crtend_so.o",
- }
-
configuration { "android-x86" }
libdirs {
"$(ANDROID_NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/x86",
"$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-x86/usr/lib",
}
includedirs {
- "$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-x86/usr/include",
+ "$(ANDROID_NDK_ROOT)/sysroot/usr/include/i686-linux-android",
}
buildoptions {
"-gcc-toolchain $(ANDROID_NDK_X86)",
@@ -998,7 +972,7 @@ function toolchain(_buildDir, _subDir)
"$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-x86_64/usr/lib64",
}
includedirs {
- "$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-x86_64/usr/include",
+ "$(ANDROID_NDK_ROOT)/sysroot/usr/include/x86_64-linux-android",
}
buildoptions {
"-gcc-toolchain $(ANDROID_NDK_X64)",
diff --git a/docs/release/src/devices/video/vector.cpp b/docs/release/src/devices/video/vector.cpp
new file mode 100644
index 00000000000..fcb7baf0c51
--- /dev/null
+++ b/docs/release/src/devices/video/vector.cpp
@@ -0,0 +1,200 @@
+// license:BSD-3-Clause
+// copyright-holders:Brad Oliver,Aaron Giles,Bernd Wiebelt,Allard van der Bas
+/******************************************************************************
+ *
+ * vector.c
+ *
+ * anti-alias code by Andrew Caldwell
+ * (still more to add)
+ *
+ * 040227 Fixed miny clip scaling which was breaking in mhavoc. AREK
+ * 010903 added support for direct RGB modes MLR
+ * 980611 use translucent vectors. Thanks to Peter Hirschberg
+ * and Neil Bradley for the inspiration. BW
+ * 980307 added cleverer dirty handling. BW, ASG
+ * fixed antialias table .ac
+ * 980221 rewrote anti-alias line draw routine
+ * added inline assembly multiply fuction for 8086 based machines
+ * beam diameter added to draw routine
+ * beam diameter is accurate in anti-alias line draw (Tcosin)
+ * flicker added .ac
+ * 980203 moved LBO's routines for drawing into a buffer of vertices
+ * from avgdvg.c to this location. Scaling is now initialized
+ * by calling vector_init(...). BW
+ * 980202 moved out of msdos.c ASG
+ * 980124 added anti-alias line draw routine
+ * modified avgdvg.c and sega.c to support new line draw routine
+ * added two new tables Tinten and Tmerge (for 256 color support)
+ * added find_color routine to build above tables .ac
+ *
+ * Vector Team
+ *
+ * Brad Oliver
+ * Aaron Giles
+ * Bernd Wiebelt
+ * Allard van der Bas
+ * Al Kossow (VECSIM)
+ * Hedley Rainnie (VECSIM)
+ * Eric Smith (VECSIM)
+ * Neil Bradley (technical advice)
+ * Andrew Caldwell (anti-aliasing)
+ *
+ **************************************************************************** */
+
+#include "emu.h"
+#include "emuopts.h"
+#include "rendutil.h"
+#include "vector.h"
+
+
+#define VECTOR_WIDTH_DENOM 512
+// mhavocpe
+#define MAX_POINTS 20000
+
+float vector_options::s_flicker = 0.0f;
+float vector_options::s_beam_width_min = 0.0f;
+float vector_options::s_beam_width_max = 0.0f;
+float vector_options::s_beam_intensity_weight = 0.0f;
+
+void vector_options::init(emu_options& options)
+{
+ s_beam_width_min = options.beam_width_min();
+ s_beam_width_max = options.beam_width_max();
+ s_beam_intensity_weight = options.beam_intensity_weight();
+ s_flicker = options.flicker();
+}
+
+// device type definition
+DEFINE_DEVICE_TYPE(VECTOR, vector_device, "vector_device", "VECTOR")
+
+vector_device::vector_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, VECTOR, tag, owner, clock),
+ device_video_interface(mconfig, *this),
+ m_vector_list(nullptr),
+ m_min_intensity(255),
+ m_max_intensity(0)
+{
+}
+
+void vector_device::device_start()
+{
+ vector_options::init(machine().options());
+
+ m_vector_index = 0;
+
+ /* allocate memory for tables */
+ m_vector_list = make_unique_clear<point[]>(MAX_POINTS);
+}
+
+/*
+ * www.dinodini.wordpress.com/2010/04/05/normalized-tunable-sigmoid-functions/
+ */
+float vector_device::normalized_sigmoid(float n, float k)
+{
+ // valid for n and k in range of -1.0 and 1.0
+ return (n - n * k) / (k - fabs(n) * 2.0f * k + 1.0f);
+}
+
+
+/*
+ * Adds a line end point to the vertices list. The vector processor emulation
+ * needs to call this.
+ */
+void vector_device::add_point(int x, int y, rgb_t color, int intensity)
+{
+ point *newpoint;
+
+ intensity = std::max(0, std::min(255, intensity));
+
+ 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;
+
+ if (vector_options::s_flicker && (intensity > 0))
+ {
+ float random = (float)(machine().rand() & 255) / 255.0f; // random value between 0.0 and 1.0
+
+ intensity -= (int)(intensity * random * vector_options::s_flicker);
+
+ intensity = std::max(0, std::min(255, intensity));
+ }
+
+ newpoint = &m_vector_list[m_vector_index];
+ newpoint->x = x;
+ newpoint->y = y;
+ newpoint->col = color;
+ newpoint->intensity = intensity;
+
+ m_vector_index++;
+ if (m_vector_index >= MAX_POINTS)
+ {
+ m_vector_index--;
+ logerror("*** Warning! Vector list overflow!\n");
+ }
+}
+
+
+/*
+ * The vector CPU creates a new display list. We save the old display list,
+ * but only once per refresh.
+ */
+void vector_device::clear_list(void)
+{
+ m_vector_index = 0;
+}
+
+
+uint32_t vector_device::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
+{
+ uint32_t flags = PRIMFLAG_ANTIALIAS(1) | PRIMFLAG_BLENDMODE(BLENDMODE_ADD) | PRIMFLAG_VECTOR(1);
+ const rectangle &visarea = screen.visible_area();
+ float xscale = 1.0f / (65536 * visarea.width());
+ float yscale = 1.0f / (65536 * visarea.height());
+ float xoffs = (float)visarea.min_x;
+ float yoffs = (float)visarea.min_y;
+
+ point *curpoint;
+ int lastx = 0;
+ int lasty = 0;
+
+ curpoint = m_vector_list.get();
+
+ screen.container().empty();
+ screen.container().add_rect(0.0f, 0.0f, 1.0f, 1.0f, rgb_t(0xff,0x00,0x00,0x00), PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA) | PRIMFLAG_VECTORBUF(1));
+
+ for (int i = 0; i < m_vector_index; i++)
+ {
+ render_bounds coords;
+
+ float intensity = (float)curpoint->intensity / 255.0f;
+ float intensity_weight = normalized_sigmoid(intensity, vector_options::s_beam_intensity_weight);
+
+ // check for static intensity
+ float beam_width = m_min_intensity == m_max_intensity
+ ? vector_options::s_beam_width_min
+ : vector_options::s_beam_width_min + intensity_weight * (vector_options::s_beam_width_max - vector_options::s_beam_width_min);
+
+ // normalize width
+ beam_width *= 1.0f / (float)VECTOR_WIDTH_DENOM;
+
+ coords.x0 = ((float)lastx - xoffs) * xscale;
+ coords.y0 = ((float)lasty - yoffs) * yscale;
+ coords.x1 = ((float)curpoint->x - xoffs) * xscale;
+ coords.y1 = ((float)curpoint->y - yoffs) * yscale;
+
+ if (curpoint->intensity != 0)
+ {
+ screen.container().add_line(
+ coords.x0, coords.y0, coords.x1, coords.y1,
+ beam_width,
+ (curpoint->intensity << 24) | (curpoint->col & 0xffffff),
+ flags);
+ }
+
+ lastx = curpoint->x;
+ lasty = curpoint->y;
+
+ curpoint++;
+ }
+
+ return 0;
+}
diff --git a/docs/release/src/emu/emuopts.cpp b/docs/release/src/emu/emuopts.cpp
index 2a677dfd58b..77e9f645f2f 100644
--- a/docs/release/src/emu/emuopts.cpp
+++ b/docs/release/src/emu/emuopts.cpp
@@ -30,14 +30,14 @@ const options_entry emu_options::s_option_entries[] =
// config options
{ nullptr, nullptr, OPTION_HEADER, "CORE CONFIGURATION OPTIONS" },
{ OPTION_READCONFIG ";rc", "1", OPTION_BOOLEAN, "enable loading of configuration files" },
- { OPTION_WRITECONFIG ";wc", "0", OPTION_BOOLEAN, "writes configuration to (driver).ini on exit" },
+ { OPTION_WRITECONFIG ";wc", "0", OPTION_BOOLEAN, "write configuration to (driver).ini on exit" },
// search path options
{ nullptr, nullptr, OPTION_HEADER, "CORE SEARCH PATH OPTIONS" },
- { OPTION_HOMEPATH, ".", OPTION_STRING, "path to home directory (read/write) location" },
- { OPTION_MEDIAPATH ";rp;biospath;bp", "roms", OPTION_STRING, "path to ROMsets and hard disk images" },
- { OPTION_HASHPATH ";hash_directory;hash", "hash", OPTION_STRING, "path to hash files" },
- { OPTION_SAMPLEPATH ";sp", "samples", OPTION_STRING, "path to samplesets" },
+ { OPTION_HOMEPATH, ".", OPTION_STRING, "path to base folder for plugin data (read/write)" },
+ { OPTION_MEDIAPATH ";rp;biospath;bp", "roms", OPTION_STRING, "path to ROM sets and hard disk images" },
+ { OPTION_HASHPATH ";hash_directory;hash", "hash", OPTION_STRING, "path to software definition files" },
+ { OPTION_SAMPLEPATH ";sp", "samples", OPTION_STRING, "path to audio sample sets" },
{ OPTION_ARTPATH, "artwork", OPTION_STRING, "path to artwork files" },
{ OPTION_CTRLRPATH, "ctrlr", OPTION_STRING, "path to controller definitions" },
{ OPTION_INIPATH, ".", OPTION_STRING, "path to ini files" }, // MESSUI
@@ -45,7 +45,7 @@ const options_entry emu_options::s_option_entries[] =
{ OPTION_CHEATPATH, "cheat", OPTION_STRING, "path to cheat files" },
{ OPTION_CROSSHAIRPATH, "crosshair", OPTION_STRING, "path to crosshair files" },
{ OPTION_PLUGINSPATH, "plugins", OPTION_STRING, "path to plugin files" },
- { OPTION_LANGUAGEPATH, "language", OPTION_STRING, "path to language files" },
+ { OPTION_LANGUAGEPATH, "language", OPTION_STRING, "path to UI translation files" },
{ OPTION_SWPATH, "software", OPTION_STRING, "path to loose software" },
// output directory options
@@ -61,7 +61,7 @@ const options_entry emu_options::s_option_entries[] =
// state/playback options
{ nullptr, nullptr, OPTION_HEADER, "CORE STATE/PLAYBACK OPTIONS" },
{ OPTION_STATE, nullptr, OPTION_STRING, "saved state to load" },
- { OPTION_AUTOSAVE, "0", OPTION_BOOLEAN, "enable automatic restore at startup, and automatic save at exit time" },
+ { OPTION_AUTOSAVE, "0", OPTION_BOOLEAN, "automatically restore state on start and save on exit for supported systems" },
{ OPTION_REWIND, "0", OPTION_BOOLEAN, "enable rewind savestates" },
{ OPTION_REWIND_CAPACITY "(1-2048)", "100", OPTION_INTEGER, "rewind buffer size in megabytes" },
{ OPTION_PLAYBACK ";pb", nullptr, OPTION_STRING, "playback an input file" },
@@ -81,28 +81,28 @@ const options_entry emu_options::s_option_entries[] =
// performance options
{ nullptr, nullptr, OPTION_HEADER, "CORE PERFORMANCE OPTIONS" },
- { OPTION_AUTOFRAMESKIP ";afs", "0", OPTION_BOOLEAN, "enable automatic frameskip selection" },
+ { OPTION_AUTOFRAMESKIP ";afs", "0", OPTION_BOOLEAN, "enable automatic frameskip adjustment to maintain emulation speed" },
{ OPTION_FRAMESKIP ";fs(0-10)", "0", OPTION_INTEGER, "set frameskip to fixed value, 0-10 (autoframeskip must be disabled)" },
{ OPTION_SECONDS_TO_RUN ";str", "0", OPTION_INTEGER, "number of emulated seconds to run before automatically exiting" },
- { OPTION_THROTTLE, "1", OPTION_BOOLEAN, "enable throttling to keep game running in sync with real time" },
+ { OPTION_THROTTLE, "1", OPTION_BOOLEAN, "throttle emulation to keep system running in sync with real time" },
{ OPTION_SLEEP, "1", OPTION_BOOLEAN, "enable sleeping, which gives time back to other applications when idle" },
{ OPTION_SPEED "(0.01-100)", "1.0", OPTION_FLOAT, "controls the speed of gameplay, relative to realtime; smaller numbers are slower" },
- { OPTION_REFRESHSPEED ";rs", "0", OPTION_BOOLEAN, "automatically adjusts the speed of gameplay to keep the refresh rate lower than the screen" },
+ { OPTION_REFRESHSPEED ";rs", "0", OPTION_BOOLEAN, "automatically adjust emulation speed to keep the emulated refresh rate slower than the host screen" },
// render options
{ nullptr, nullptr, OPTION_HEADER, "CORE RENDER OPTIONS" },
- { OPTION_KEEPASPECT ";ka", "1", OPTION_BOOLEAN, "constrain to the proper aspect ratio" },
- { OPTION_UNEVENSTRETCH ";ues", "1", OPTION_BOOLEAN, "allow non-integer stretch factors" },
- { OPTION_UNEVENSTRETCHX ";uesx", "0", OPTION_BOOLEAN, "allow non-integer stretch factors only on horizontal axis"},
- { OPTION_UNEVENSTRETCHY ";uesy", "0", OPTION_BOOLEAN, "allow non-integer stretch factors only on vertical axis"},
+ { OPTION_KEEPASPECT ";ka", "1", OPTION_BOOLEAN, "maintain aspect ratio when scaling to fill output screen/window" },
+ { OPTION_UNEVENSTRETCH ";ues", "1", OPTION_BOOLEAN, "allow non-integer ratios when scaling to fill output screen/window horizontally or vertically" },
+ { OPTION_UNEVENSTRETCHX ";uesx", "0", OPTION_BOOLEAN, "allow non-integer ratios when scaling to fill output screen/window horizontally"},
+ { OPTION_UNEVENSTRETCHY ";uesy", "0", OPTION_BOOLEAN, "allow non-integer ratios when scaling to fill otuput screen/window vertially"},
{ OPTION_AUTOSTRETCHXY ";asxy", "0", OPTION_BOOLEAN, "automatically apply -unevenstretchx/y based on source native orientation"},
{ OPTION_INTOVERSCAN ";ios", "0", OPTION_BOOLEAN, "allow overscan on integer scaled targets"},
- { OPTION_INTSCALEX ";sx", "0", OPTION_INTEGER, "set horizontal integer scale factor."},
- { OPTION_INTSCALEY ";sy", "0", OPTION_INTEGER, "set vertical integer scale."},
+ { OPTION_INTSCALEX ";sx", "0", OPTION_INTEGER, "set horizontal integer scale factor"},
+ { OPTION_INTSCALEY ";sy", "0", OPTION_INTEGER, "set vertical integer scale factor"},
// rotation options
{ nullptr, nullptr, OPTION_HEADER, "CORE ROTATION OPTIONS" },
- { OPTION_ROTATE, "1", OPTION_BOOLEAN, "rotate the game screen according to the game's orientation needs it" },
+ { OPTION_ROTATE, "1", OPTION_BOOLEAN, "rotate the game screen according to the game's orientation when needed" },
{ OPTION_ROR, "0", OPTION_BOOLEAN, "rotate screen clockwise 90 degrees" },
{ OPTION_ROL, "0", OPTION_BOOLEAN, "rotate screen counterclockwise 90 degrees" },
{ OPTION_AUTOROR, "0", OPTION_BOOLEAN, "automatically rotate screen clockwise 90 degrees if vertical" },
@@ -112,7 +112,7 @@ const options_entry emu_options::s_option_entries[] =
// artwork options
{ nullptr, nullptr, OPTION_HEADER, "CORE ARTWORK OPTIONS" },
- { OPTION_ARTWORK_CROP ";artcrop", "0", OPTION_BOOLEAN, "crop artwork to game screen size" },
+ { OPTION_ARTWORK_CROP ";artcrop", "0", OPTION_BOOLEAN, "crop artwork so emulated screen image fills output screen/window in one axis" },
{ OPTION_USE_BACKDROPS ";backdrop", "1", OPTION_BOOLEAN, "enable backdrops if artwork is enabled and available" },
{ OPTION_USE_OVERLAYS ";overlay", "1", OPTION_BOOLEAN, "enable overlays if artwork is enabled and available" },
{ OPTION_USE_BEZELS ";bezel", "1", OPTION_BOOLEAN, "enable bezels if artwork is enabled and available" },
@@ -144,7 +144,7 @@ const options_entry emu_options::s_option_entries[] =
// input options
{ nullptr, nullptr, OPTION_HEADER, "CORE INPUT OPTIONS" },
- { OPTION_COIN_LOCKOUT ";coinlock", "1", OPTION_BOOLEAN, "enable coin lockouts to actually lock out coins" },
+ { OPTION_COIN_LOCKOUT ";coinlock", "1", OPTION_BOOLEAN, "ignore coin inputs if coin lockout ouput is active" },
{ OPTION_CTRLR, nullptr, OPTION_STRING, "preconfigure for specified controller" },
{ OPTION_MOUSE, "0", OPTION_BOOLEAN, "enable mouse input" },
{ OPTION_JOYSTICK ";joy", "1", OPTION_BOOLEAN, "enable joystick input" },
@@ -176,7 +176,7 @@ const options_entry emu_options::s_option_entries[] =
{ nullptr, nullptr, OPTION_HEADER, "CORE DEBUGGING OPTIONS" },
{ OPTION_VERBOSE ";v", "0", OPTION_BOOLEAN, "display additional diagnostic information" },
{ OPTION_LOG, "0", OPTION_BOOLEAN, "generate an error.log file" },
- { OPTION_OSLOG, "0", OPTION_BOOLEAN, "output error.log data to the system debugger" },
+ { OPTION_OSLOG, "0", OPTION_BOOLEAN, "output error.log data to system diagnostic output (debugger or standard error)" },
{ OPTION_DEBUG ";d", "0", OPTION_BOOLEAN, "enable/disable debugger" },
{ OPTION_UPDATEINPAUSE, "0", OPTION_BOOLEAN, "keep calling video updates while in pause" },
{ OPTION_DEBUGSCRIPT, nullptr, OPTION_STRING, "script for debugger" },
@@ -191,32 +191,32 @@ const options_entry emu_options::s_option_entries[] =
// misc options
{ nullptr, nullptr, OPTION_HEADER, "CORE MISC OPTIONS" },
- { OPTION_DRC, "1", OPTION_BOOLEAN, "enable DRC cpu core if available" },
- { OPTION_DRC_USE_C, "0", OPTION_BOOLEAN, "force DRC use C backend" },
+ { OPTION_DRC, "1", OPTION_BOOLEAN, "enable DRC CPU core if available" },
+ { OPTION_DRC_USE_C, "0", OPTION_BOOLEAN, "force DRC to use C backend" },
{ OPTION_DRC_LOG_UML, "0", OPTION_BOOLEAN, "write DRC UML disassembly log" },
{ OPTION_DRC_LOG_NATIVE, "0", OPTION_BOOLEAN, "write DRC native disassembly log" },
{ OPTION_BIOS, nullptr, OPTION_STRING, "select the system BIOS to use" },
{ OPTION_CHEAT ";c", "0", OPTION_BOOLEAN, "enable cheat subsystem" },
- { OPTION_SKIP_GAMEINFO, "0", OPTION_BOOLEAN, "skip displaying the information screen at startup" },
+ { OPTION_SKIP_GAMEINFO, "0", OPTION_BOOLEAN, "skip displaying the system information screen at startup" },
{ OPTION_UI_FONT, "default", OPTION_STRING, "specify a font to use" },
{ OPTION_UI, "cabinet", OPTION_STRING, "type of UI (simple|cabinet)" },
{ OPTION_RAMSIZE ";ram", nullptr, OPTION_STRING, "size of RAM (if supported by driver)" },
- { OPTION_CONFIRM_QUIT, "0", OPTION_BOOLEAN, "display confirm quit screen on exit" },
- { OPTION_UI_MOUSE, "1", OPTION_BOOLEAN, "display ui mouse cursor" },
- { OPTION_LANGUAGE ";lang", "English", OPTION_STRING, "display language" },
- { OPTION_NVRAM_SAVE ";nvwrite", "1", OPTION_BOOLEAN, "save NVRAM on exit" },
+ { OPTION_CONFIRM_QUIT, "0", OPTION_BOOLEAN, "ask for confirmation before exiting" },
+ { OPTION_UI_MOUSE, "1", OPTION_BOOLEAN, "display UI mouse cursor" },
+ { OPTION_LANGUAGE ";lang", "English", OPTION_STRING, "set UI display language" },
+ { OPTION_NVRAM_SAVE ";nvwrite", "1", OPTION_BOOLEAN, "save NVRAM data on exit" },
{ nullptr, nullptr, OPTION_HEADER, "SCRIPTING OPTIONS" },
{ OPTION_AUTOBOOT_COMMAND ";ab", nullptr, OPTION_STRING, "command to execute after machine boot" },
- { OPTION_AUTOBOOT_DELAY, "0", OPTION_INTEGER, "timer delay in sec to trigger command execution on autoboot" },
- { OPTION_AUTOBOOT_SCRIPT ";script", nullptr, OPTION_STRING, "lua script to execute after machine boot" },
- { OPTION_CONSOLE, "0", OPTION_BOOLEAN, "enable emulator LUA console" },
- { OPTION_PLUGINS, "1", OPTION_BOOLEAN, "enable LUA plugin support" },
+ { OPTION_AUTOBOOT_DELAY, "0", OPTION_INTEGER, "delay before executing autoboot command (seconds)" },
+ { OPTION_AUTOBOOT_SCRIPT ";script", nullptr, OPTION_STRING, "Lua script to execute after machine boot" },
+ { OPTION_CONSOLE, "0", OPTION_BOOLEAN, "enable emulator Lua console" },
+ { OPTION_PLUGINS, "1", OPTION_BOOLEAN, "enable Lua plugin support" },
{ OPTION_PLUGIN, nullptr, OPTION_STRING, "list of plugins to enable" },
{ OPTION_NO_PLUGIN, nullptr, OPTION_STRING, "list of plugins to disable" },
{ nullptr, nullptr, OPTION_HEADER, "HTTP SERVER OPTIONS" },
- { OPTION_HTTP, "0", OPTION_BOOLEAN, "HTTP server enable" },
+ { OPTION_HTTP, "0", OPTION_BOOLEAN, "enable HTTP server" },
{ OPTION_HTTP_PORT, "8080", OPTION_INTEGER, "HTTP server port" },
{ OPTION_HTTP_ROOT, "web", OPTION_STRING, "HTTP server document root" },
diff --git a/docs/release/src/emu/validity.cpp b/docs/release/src/emu/validity.cpp
index aa9e2c5f988..90fbde80962 100644
--- a/docs/release/src/emu/validity.cpp
+++ b/docs/release/src/emu/validity.cpp
@@ -1462,7 +1462,7 @@ void validity_checker::validate_driver()
if (compatible_with != nullptr && strcmp(compatible_with, "0") == 0)
compatible_with = nullptr;
- // check for this driver being compatible with a non-existant driver
+ // check for this driver being compatible with a nonexistent driver
if (compatible_with != nullptr && m_drivlist.find(m_current_driver->compatible_with) == -1)
osd_printf_error("Driver is listed as compatible with nonexistent driver %s\n", m_current_driver->compatible_with);
diff --git a/docs/release/src/hbmame/drivers/atarig42.cpp b/docs/release/src/hbmame/drivers/atarig42.cpp
new file mode 100644
index 00000000000..9ad91637310
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/atarig42.cpp
@@ -0,0 +1,126 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/atarig42.cpp"
+
+
+
+class dangerex_state : public atarig42_0x400_state
+{
+public:
+ using atarig42_0x400_state::atarig42_0x400_state;
+ void init_dangerex();
+};
+
+// 5 = coin in; Alt = Start
+INPUT_PORTS_START( dangerex )
+ PORT_START("IN0") /* e00000 */
+ PORT_BIT( 0x000f, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_CUSTOM ) // Toggle 0 - D4
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_CUSTOM ) // Toggle 1 - D5
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_CUSTOM ) // Step SW - D6
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_CUSTOM ) // Freeze - D7
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
+ PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
+
+ PORT_START("IN1") /* e00002 */
+ PORT_BIT( 0x000f, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_CUSTOM ) // Test Yellow - D4
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_CUSTOM ) // Test Blue - D5
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_CUSTOM ) // Test Blue - D6
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_CUSTOM ) // Test Blue - D7
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
+ PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
+
+ PORT_START("IN2") /* e00010 */
+ PORT_BIT( 0x000f, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_ATARI_JSA_SOUND_TO_MAIN_READY("jsa")
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_ATARI_JSA_MAIN_TO_SOUND_READY("jsa")
+ PORT_SERVICE( 0x0040, IP_ACTIVE_LOW )
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen")
+ PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START("A2D0") /* analog 0 */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START("A2D1") /* analog 1 */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
+INPUT_PORTS_END
+
+ROM_START( dangerex )
+ ROM_REGION( 0x80004, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "dx8d-0h.8d", 0x00000, 0x20000, CRC(4957b65d) SHA1(de9f187b6496cf96d29c4b1b29887abc2bdf9bf0) )
+ ROM_LOAD16_BYTE( "dx8c-0l.8c", 0x00001, 0x20000, CRC(aedcb497) SHA1(7e201b7db5c0ff661f782566a6b17299d514c77a) )
+ ROM_LOAD16_BYTE( "dx9d-1h.9d", 0x40000, 0x20000, CRC(2eb943e2) SHA1(87dbf11720e2938bf5755b13231fc668ab3e0e05) )
+ ROM_LOAD16_BYTE( "dx9c-1l.9c", 0x40001, 0x20000, CRC(79de4c91) SHA1(31de5e927aff4efcf4217da3c704ece2d393faf9) )
+
+ ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )
+ ROM_LOAD( "136089-1012.3f", 0x00000, 0x0a80, NO_DUMP )
+
+ ROM_REGION( 0x14000, "jsa:cpu", 0 )
+ ROM_LOAD( "dx12c-5.12c", 0x10000, 0x4000, CRC(d72621f7) SHA1(4bf5c98dd2434cc6ed1bddb6baf42f41cf138e1a) )
+ ROM_CONTINUE( 0x04000, 0xc000 )
+
+ ROM_REGION( 0xc0000, "gfx1", 0 )
+ ROM_LOAD( "dxc117-22d.22d", 0x000000, 0x20000, CRC(5532995a) SHA1(21e001c911adb91dbe43e895ae8582df65f2995d) )
+ ROM_LOAD( "dx82-22c.22c", 0x020000, 0x20000, CRC(9548599b) SHA1(d08bae8dabce0175f956631ddfbf091653af035e) )
+ ROM_LOAD( "dxc116-20-21d.21d", 0x040000, 0x20000, CRC(ebbf0fd8) SHA1(4ceb026c4231b675215110c16c8f75551cdfa461) )
+ ROM_LOAD( "dxc81-22-21c.21c", 0x060000, 0x20000, CRC(24cb1d34) SHA1(4fc558c8dee3654abd164e5e4adddf9bfcbca3ae) )
+ ROM_LOAD( "dxc115-20d.20d", 0x080000, 0x20000, CRC(2819ce54) SHA1(9a3c041d9046af41997dc1d9f41bf0e1be9489f9) )
+ ROM_LOAD( "dxc80-20c.20c", 0x0a0000, 0x20000, CRC(a8ffe459) SHA1(92a10694c38a4fbe3022662f4e8e4e214aab31c9) )
+
+ ROM_REGION( 0x020000, "gfx2", 0 )
+ ROM_LOAD( "dxc187-22j.22j", 0x000000, 0x20000, CRC(7231ecc2) SHA1(8b1b0aed3a0d907630e120395b0a97fd9a1ef8cc) )
+
+ ROM_REGION16_BE( 0x800000, "rle", 0 )
+ ROM_LOAD16_BYTE( "dx2s-0h.2s", 0x000000, 0x80000, CRC(89902ce2) SHA1(f910ad65f3780e28c9920c4185c1ea807ec478aa) )
+ ROM_LOAD16_BYTE( "dx2p-0l.2p", 0x000001, 0x80000, CRC(dabe7e1c) SHA1(1f77bba57b7025333c27ee3d548d08ee960d63d6) )
+ ROM_LOAD16_BYTE( "dx3s-1h.3s", 0x100000, 0x80000, CRC(ffeec3d1) SHA1(de40083ce3862f2b5d37f5f255f93b2b2487ed96) )
+ ROM_LOAD16_BYTE( "dx3p-1l.3p", 0x100001, 0x80000, CRC(40b0a300) SHA1(3ec055bdc30e62c5e95541b15c53f1d439ccb5b4) )
+ ROM_LOAD16_BYTE( "dx4s-2h.4s", 0x200000, 0x80000, CRC(1e4d0c50) SHA1(fbb5422f43e1c4f8787073c1cdaeb75121a67a35) )
+ ROM_LOAD16_BYTE( "dx4p-2l.4p", 0x200001, 0x80000, CRC(00d586e1) SHA1(7e8419a5972a5e0fc372c72b5c5f8f3ff4294a2b) )
+ ROM_LOAD16_BYTE( "dx5s-3h.5s", 0x300000, 0x80000, CRC(98e26315) SHA1(dbc567c3b9d00f827acb8ba2d5a79a7d2acc7ddd) )
+ ROM_LOAD16_BYTE( "dx5p-3l.5p", 0x300001, 0x80000, CRC(e37b1413) SHA1(490911006f0e10319117dae3a87623d8244ea182) )
+ ROM_LOAD16_BYTE( "dx6s-4h.6s", 0x400000, 0x80000, CRC(b2bc538c) SHA1(1bda4a6c40c9389573857879263c0f01b5f029d3) )
+ ROM_LOAD16_BYTE( "dx6p-4l.6p", 0x400001, 0x80000, CRC(5e3aefb8) SHA1(492eb7f42bbeefbc377d3a491fe07b64c1c8a11c) )
+ ROM_LOAD16_BYTE( "dx7s-5h.7s", 0x500000, 0x80000, CRC(396d706e) SHA1(7682287df2ad2283b5999c3df272baa9559b7bd5) )
+ ROM_LOAD16_BYTE( "dx7p-5l.7p", 0x500001, 0x80000, CRC(102c827d) SHA1(6ae405032a07081841a5a3fb48422bd67d37372c) )
+ ROM_LOAD16_BYTE( "dx8s-6h.8s", 0x600000, 0x80000, CRC(af3b1f90) SHA1(d514a7b5e9bb263bbb1164a5174fa6943c4e5fb4) )
+ ROM_LOAD16_BYTE( "dx8p-6l.8p", 0x600001, 0x80000, CRC(a0e7311b) SHA1(9c4d443c727c3bd59f035bf27c4f7e74046d4c45) )
+ ROM_LOAD16_BYTE( "dx9s-7h.7h", 0x700000, 0x80000, CRC(5bf0ce01) SHA1(22f971842371eb36b2dc6ae303ef3955dd9884c2) )
+ ROM_LOAD16_BYTE( "dx9p-7l.7l", 0x700001, 0x80000, CRC(e6f1d9fa) SHA1(160b4c9a90bdc48c990e5d4a24b17a284c9b4da8) )
+
+ ROM_REGION( 0x100000, "jsa:oki1", 0 )
+ ROM_LOAD( "dx19e-0.19e", 0x00000, 0x20000, CRC(e7d9d5fb) SHA1(756b1d59168855a707181dd6c437a59313da5a7c) )
+ ROM_LOAD( "dx17e-1.17e", 0x20000, 0x20000, CRC(ccb73a18) SHA1(3e853f7c7ab32b18fdb6529d37d28eb96c5365dc) )
+ ROM_LOAD( "dx15e-2.15e", 0x40000, 0x20000, CRC(11596234) SHA1(77eab7cb4ad83a50c23127b4fb1bbfd4aa2c6f8d) )
+ ROM_LOAD( "dx12e-3.12e", 0x60000, 0x20000, CRC(c0ffd43c) SHA1(dcd7e3cc5d46db0d0a7fe3806bddbca235492d35) )
+
+ ROM_REGION( 0x800, "eeprom:eeprom", 0 )
+ ROM_LOAD( "dx-eeprom.5c", 0x0000, 0x800, CRC(17a77f1d) SHA1(96779beefb4607acedf0b4fe42d4778d0cf34568) )
+
+ ROM_REGION( 0x0600, "proms", 0 )
+ ROM_LOAD( "092-1001.20p", 0x0000, 0x0200, NO_DUMP CRC(b3251eeb) SHA1(5e83baa70aaa28f07f32657bf974fd87719972d3) )
+ ROM_LOAD( "092-1002.22p", 0x0200, 0x0200, NO_DUMP CRC(0c5314da) SHA1(a9c7ee3ab015c7f3ada4200acd2854eb9a5c74b0) )
+ ROM_LOAD( "092-1003.21p", 0x0400, 0x0200, NO_DUMP CRC(344b406a) SHA1(f4422f8c0d7004d0277a4fc77718d555f80fcf69) )
+ROM_END
+
+void dangerex_state::init_dangerex()
+{
+ m_playfield_base = 0x000;
+}
+
+
+GAME( 1992, dangerex, 0, atarig42_0x400, dangerex, dangerex_state, init_dangerex, ROT0, "Atari Games", "Danger Express (prototype)", 0 )
+
diff --git a/docs/release/src/hbmame/drivers/dkong.cpp b/docs/release/src/hbmame/drivers/dkong.cpp
index d6d273306cc..75ed2328d79 100644
--- a/docs/release/src/hbmame/drivers/dkong.cpp
+++ b/docs/release/src/hbmame/drivers/dkong.cpp
@@ -334,6 +334,62 @@ ROM_START( dkspkyrmx )
ROM_LOAD( "v-5e.sp", 0x0200, 0x0100, CRC(c70b6f9b) SHA1(e9f465de5e990478e96be1501cb8c5fc16b3c86e) )
ROM_END
+ROM_START( dktrainer )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "c_5et_g.bin", 0x0000, 0x1000, CRC(7ed5a945) SHA1(27ea2b9ca8e03a660943b043a2880c95a4f92de8) )
+ ROM_LOAD( "c_5ct_g.bin", 0x1000, 0x1000, CRC(98e2caa8) SHA1(5289f2268bac39bd04da8b9b94e25e55e4ea8e04) )
+ ROM_LOAD( "c_5bt_g.bin", 0x2000, 0x1000, CRC(098a840a) SHA1(05ea657be2de863fb8a42bf1e173a6a80fb16cc7) )
+ ROM_LOAD( "c_5at_g.bin", 0x3000, 0x1000, CRC(dd092591) SHA1(36455e5a689a926b79be79e38d96ad8fe2ce7417) )
+
+ ROM_REGION( 0x1800, "soundcpu", 0 )
+ ROM_LOAD( "s_3i_b.bin", 0x0000, 0x0800, CRC(45a4ed06) SHA1(144d24464c1f9f01894eb12f846952290e6e32ef) )
+ ROM_RELOAD( 0x0800, 0x0800 )
+ ROM_LOAD( "s_3j_b.bin", 0x1000, 0x0800, CRC(4743fe92) SHA1(6c82b57637c0212a580591397e6a5a1718f19fd2) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "v_5h_b.bin", 0x0000, 0x0800, CRC(12c8c95d) SHA1(a57ff5a231c45252a63b354137c920a1379b70a3) )
+ ROM_LOAD( "v_3pt.bin", 0x0800, 0x0800, CRC(15e9c5e9) SHA1(976eb1e18c74018193a35aa86cff482ebfc5cc4e) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "l_4m_b.bin", 0x0000, 0x0800, CRC(59f8054d) SHA1(793dba9bf5a5fe76328acdfb90815c243d2a65f1) )
+ ROM_LOAD( "l_4n_b.bin", 0x0800, 0x0800, CRC(672e4714) SHA1(92e5d379f4838ac1fa44d448ce7d142dae42102f) )
+ ROM_LOAD( "l_4r_b.bin", 0x1000, 0x0800, CRC(feaa59ee) SHA1(ecf95db5a20098804fc8bd59232c66e2e0ed3db4) )
+ ROM_LOAD( "l_4s_b.bin", 0x1800, 0x0800, CRC(20f2ef7e) SHA1(3bc482a38bf579033f50082748ee95205b0f673d) )
+
+ ROM_REGION( 0x0300, "proms", 0 )
+ ROM_LOAD( "c-2k.bpr", 0x0000, 0x0100, CRC(e273ede5) SHA1(b50ec9e1837c00c20fb2a4369ec7dd0358321127) )
+ ROM_LOAD( "c-2j.bpr", 0x0100, 0x0100, CRC(d6412358) SHA1(f9c872da2fe8e800574ae3bf483fb3ccacc92eb3) )
+ ROM_LOAD( "v-5e.bpr", 0x0200, 0x0100, CRC(b869b8f5) SHA1(c2bdccbf2654b64ea55cd589fd21323a9178a660) )
+ROM_END
+
+ROM_START( dkpace )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "c_5et_g.bin", 0x0000, 0x1000, CRC(e05563d5) SHA1(db17bf866e223a5b57e3fdd23f79f1f8ca67f697) )
+ ROM_LOAD( "c_5ct_g.bin", 0x1000, 0x1000, CRC(88aa1ddf) SHA1(d1582ba10cf15b24286524fa494279a4d25adfbb) )
+ ROM_LOAD( "c_5bt_g.bin", 0x2000, 0x1000, CRC(8ee0b1d2) SHA1(7cae6b1b3143fbf1c2ad0cbfa7855eb1c9519fde) )
+ ROM_LOAD( "c_5at_g.bin", 0x3000, 0x1000, CRC(0bc9c8db) SHA1(8e51b4d6905d8321c9d29e51d830c8554a94f664) )
+
+ ROM_REGION( 0x1800, "soundcpu", 0 )
+ ROM_LOAD( "s_3i_b.bin", 0x0000, 0x0800, CRC(45a4ed06) SHA1(144d24464c1f9f01894eb12f846952290e6e32ef) )
+ ROM_RELOAD( 0x0800, 0x0800 )
+ ROM_LOAD( "s_3j_b.bin", 0x1000, 0x0800, CRC(4743fe92) SHA1(6c82b57637c0212a580591397e6a5a1718f19fd2) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "v_5h_b.bin", 0x0000, 0x0800, CRC(12c8c95d) SHA1(a57ff5a231c45252a63b354137c920a1379b70a3) )
+ ROM_LOAD( "v_3pt.bin", 0x0800, 0x0800, CRC(15e9c5e9) SHA1(976eb1e18c74018193a35aa86cff482ebfc5cc4e) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "l_4m_b.bin", 0x0000, 0x0800, CRC(59f8054d) SHA1(793dba9bf5a5fe76328acdfb90815c243d2a65f1) )
+ ROM_LOAD( "l_4n_b.bin", 0x0800, 0x0800, CRC(672e4714) SHA1(92e5d379f4838ac1fa44d448ce7d142dae42102f) )
+ ROM_LOAD( "l_4r_b.bin", 0x1000, 0x0800, CRC(feaa59ee) SHA1(ecf95db5a20098804fc8bd59232c66e2e0ed3db4) )
+ ROM_LOAD( "l_4s_b.bin", 0x1800, 0x0800, CRC(20f2ef7e) SHA1(3bc482a38bf579033f50082748ee95205b0f673d) )
+
+ ROM_REGION( 0x0300, "proms", 0 )
+ ROM_LOAD( "c-2k.bpr", 0x0000, 0x0100, CRC(e273ede5) SHA1(b50ec9e1837c00c20fb2a4369ec7dd0358321127) )
+ ROM_LOAD( "c-2j.bpr", 0x0100, 0x0100, CRC(d6412358) SHA1(f9c872da2fe8e800574ae3bf483fb3ccacc92eb3) )
+ ROM_LOAD( "v-5e.bpr", 0x0200, 0x0100, CRC(b869b8f5) SHA1(c2bdccbf2654b64ea55cd589fd21323a9178a660) )
+ROM_END
+
GAME( 2013, dkong2m, dkong, dkong2b, dkong, dkong_state, empty_init, ROT270, "Hack", "Donkey Kong (2 marios)", MACHINE_SUPPORTS_SAVE )
@@ -342,6 +398,8 @@ GAME( 2007, dkongp, dkong, dkong2b, dkong, dkong_state, empty_init, ROT
GAME( 2001, dkongpac, dkong, dkong2b, dkong, dkong_state, empty_init, ROT270, "Tim Appleton", "Donkey Kong (Pacman graphics)", MACHINE_SUPPORTS_SAVE )
GAME( 2015, dkrainbow, dkong, dkong2b, dkong, dkong_state, empty_init, ROT270, "Sock Master", "Rainbow Donkey Kong", MACHINE_SUPPORTS_SAVE )
GAME( 2015, dkrdemo, dkong, dkong2b, dkrdemo, dkong_state, empty_init, ROT270, "Sock Master", "Donkey Kong Remix demo 1.8", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, dktrainer, dkong, dkong2b, dkong, dkong_state, empty_init, ROT270, "Sock Master", "Donkey Kong Trainer 1.01", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, dkpace, dkong, dkong2b, dkong, dkong_state, empty_init, ROT270, "Sock Master", "Donkey Kong Pace", MACHINE_SUPPORTS_SAVE )
GAME( 2017, dkchrmx, dkong, dk_braze, dkongx, dkong_state, init_dkongx, ROT270, "Sock Master", "Donkey Kong Christmas Remix", MACHINE_SUPPORTS_SAVE )
GAME( 2018, dkspkyrmx, dkong, dk_braze, dkongx, dkong_state, init_dkongx, ROT270, "Sock Master", "Donkey Kong Spooky Remix", MACHINE_SUPPORTS_SAVE )
GAME( 1999, kong2600, dkong, dkong2b, dkong, dkong_state, empty_init, ROT270, "Vic Twenty George", "Donkey Kong (2600 graphics)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/galaga.cpp b/docs/release/src/hbmame/drivers/galaga.cpp
index cecba3492dd..0affc4aa9fc 100644
--- a/docs/release/src/hbmame/drivers/galaga.cpp
+++ b/docs/release/src/hbmame/drivers/galaga.cpp
@@ -44,10 +44,10 @@ MACHINE_CONFIG_START( galaga_hbmame::galagost )
MCFG_DEVICE_PROGRAM_MAP(galagost_map)
/* sound hardware */
- MCFG_DEVICE_ADD("samples", SAMPLES, 0)
- MCFG_SAMPLES_CHANNELS(1)
- MCFG_SAMPLES_NAMES(galagost_sample_names)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75)
+ SAMPLES(config, m_samples);
+ m_samples->set_channels(1);
+ m_samples->set_samples_names(galagost_sample_names);
+ m_samples->add_route(ALL_OUTPUTS, "mono", 0.75);
MACHINE_CONFIG_END
// galaga hacks
diff --git a/docs/release/src/hbmame/drivers/galaxian.cpp b/docs/release/src/hbmame/drivers/galaxian.cpp
index 179c3010359..ef513708cf6 100644
--- a/docs/release/src/hbmame/drivers/galaxian.cpp
+++ b/docs/release/src/hbmame/drivers/galaxian.cpp
@@ -5,60 +5,6 @@
/*************************************
*
- * Four Play
- *
- *************************************/
-
-void galaxian_state::fourplay_map(address_map &map) {
- map(0x0000,0x3fff).bankr("bank1");
- map(0x4000,0x47ff).ram();
- map(0x5000,0x53ff).mirror(0x0400).ram().w(FUNC(galaxian_state::galaxian_videoram_w)).share("videoram");
- map(0x5800,0x58ff).mirror(0x0700).ram().w(FUNC(galaxian_state::galaxian_objram_w)).share("spriteram");
- map(0x6000,0x6000).portr("IN0");
- map(0x6800,0x6800).portr("IN1");
- map(0x7000,0x7000).portr("IN2");
- map(0x7800,0x7fff).r("watchdog",FUNC(watchdog_timer_device::reset_r));
- map(0x6000,0x6001).w(FUNC(galaxian_state::start_lamp_w));
- map(0x6002,0x6002).nopw(); // AM_WRITE(coin_lock_w)
- map(0x6003,0x6003).w(FUNC(galaxian_state::coin_count_0_w));
- map(0x6004,0x6007).w("cust",FUNC(galaxian_sound_device::lfo_freq_w));
- map(0x6800,0x6807).w("cust",FUNC(galaxian_sound_device::sound_w));
- map(0x7001,0x7001).w(FUNC(galaxian_state::irq_enable_w));
- map(0x7002,0x7003).w(FUNC(galaxian_state::fourplay_rombank_w));
- map(0x7004,0x7004).w(FUNC(galaxian_state::galaxian_stars_enable_w));
- map(0x7005,0x7005).nopw(); /* bit 3 of rombank select - always 0 */
- map(0x7006,0x7006).w(FUNC(galaxian_state::galaxian_flip_screen_x_w));
- map(0x7007,0x7007).w(FUNC(galaxian_state::galaxian_flip_screen_y_w));
- map(0x7008,0x7008).nopw(); /* bit 4 of rombank select - always 0 */
- map(0x7800,0x7800).w("cust",FUNC(galaxian_sound_device::pitch_w));
-}
-
-MACHINE_CONFIG_START( galaxian_state::fourplay )
- galaxian(config);
- /* info can be found at http://www.ionpool.net/arcade/galaxian_hacks/fourplay.htm */
- /* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(fourplay_map)
-
- /* video hardware */
- MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_gmgalax)
- MCFG_PALETTE_MODIFY("palette")
- MCFG_PALETTE_ENTRIES(64)
-MACHINE_CONFIG_END
-
-void galaxian_state::init_fourplay()
-{
- membank("bank1")->configure_entries(0, 4, memregion("maincpu")->base() + 0x10000, 0x4000);
- membank("bank1")->set_entry(0);
-
- /* video extensions */
- common_init(NULL, NULL, &galaxian_state::pisces_extend_tile_info, &galaxian_state::pisces_extend_sprite_info);
-}
-
-
-
-/*************************************
- *
* Galaxiab
*
*************************************/
@@ -211,62 +157,6 @@ MACHINE_CONFIG_END
-/*************************************
- *
- * Video Eight
- *
- *************************************/
-
-void galaxian_state::videight_map(address_map &map) {
- map(0x0000,0x3fff).bankr("bank1");
- map(0x4000,0x47ff).ram();
- map(0x5000,0x53ff).mirror(0x400).ram().w(FUNC(galaxian_state::galaxian_videoram_w)).share("videoram");
- map(0x5800,0x58ff).mirror(0x700).ram().w(FUNC(galaxian_state::galaxian_objram_w)).share("spriteram");
- map(0x6000,0x6000).portr("IN0");
- map(0x6800,0x6800).portr("IN1");
- map(0x7000,0x7000).portr("IN2");
- map(0x7800,0x7fff).r("watchdog",FUNC(watchdog_timer_device::reset_r));
- map(0x6000,0x6002).w(FUNC(galaxian_state::videight_gfxbank_w));
- map(0x6003,0x6003).w(FUNC(galaxian_state::coin_count_0_w));
- map(0x6004,0x6007).w("cust",FUNC(galaxian_sound_device::lfo_freq_w));
- map(0x6800,0x6807).w("cust",FUNC(galaxian_sound_device::sound_w));
- map(0x6808,0x68ff).nopw();
- map(0x7001,0x7001).w(FUNC(galaxian_state::irq_enable_w));
- map(0x7002,0x7005).w(FUNC(galaxian_state::videight_rombank_w));
- map(0x7006,0x7006).w(FUNC(galaxian_state::galaxian_flip_screen_x_w));
- map(0x7007,0x7007).w(FUNC(galaxian_state::galaxian_flip_screen_y_w));
- map(0x7008,0x7008).nopw(); /* bit 4 of rombank select - always 0 */
- map(0x7800,0x7800).w("cust",FUNC(galaxian_sound_device::pitch_w));
-}
-
-static GFXDECODE_START( gfx_videight )
- GFXDECODE_SCALE( "gfx1", 0x0000, galaxian_charlayout, 0, 8*32, GALAXIAN_XSCALE,1)
- GFXDECODE_SCALE( "gfx1", 0x0000, galaxian_spritelayout, 0, 8*32, GALAXIAN_XSCALE,1)
-GFXDECODE_END
-
-MACHINE_CONFIG_START( galaxian_state::videight )
- galaxian(config);
-
- /* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(videight_map)
-
- /* video hardware */
- MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_videight)
- MCFG_PALETTE_MODIFY("palette")
- MCFG_PALETTE_ENTRIES(8*32)
-MACHINE_CONFIG_END
-
-void galaxian_state::init_videight()
-{
- membank("bank1")->configure_entries(0, 8, memregion("maincpu")->base() + 0x10000, 0x4000);
- membank("bank1")->set_entry(0);
-
- /* video extensions */
- common_init(NULL, NULL, &galaxian_state::videight_extend_tile_info, &galaxian_state::videight_extend_sprite_info);
-}
-
-
/***************************************************************************
Game driver(s)
@@ -562,30 +452,6 @@ ROM_START( vectrgal )
ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) )
ROM_END
-ROM_START( fourplay )
- ROM_REGION( 0x20000, "maincpu", 0 )
- ROM_LOAD( "fourplay.bin", 0x10000, 0x10000, CRC(b42b2c2c) SHA1(f3b6f136b39e7a6adadecb9acf906fcfe649f398) )
-
- ROM_REGION( 0x2000, "gfx1", 0 )
- ROM_LOAD( "graph1.bin", 0x0000, 0x1000, CRC(359c0c1f) SHA1(9e39baae4ab5763db236d0a49a6665d2e69cba11) )
- ROM_LOAD( "graph2.bin", 0x1000, 0x1000, CRC(b22a51c9) SHA1(cccfbab0c92dba81e3451de72d1f1899226e30e2) )
-
- ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) )
-ROM_END
-
-ROM_START( videight )
- ROM_REGION( 0x30000, "maincpu", 0 )
- ROM_LOAD( "videight.bin", 0x10000, 0x20000, CRC(0601db09) SHA1(0c9cd1afb0034946261219bf42b2f9b1ed5bdb17) )
-
- ROM_REGION( 0x10000, "gfx1", 0 )
- ROM_LOAD( "v8g1.bin", 0x0000, 0x8000, CRC(af771e33) SHA1(cdc960c5f548e19da4eabdaf8b789ca8ffb6a29f) )
- ROM_LOAD( "v8g2.bin", 0x8000, 0x8000, CRC(776c34e6) SHA1(de70a29f73469a58ab15acb95aaad1efeb4de08d) )
-
- ROM_REGION( 0x0100, "proms", 0 )
- ROM_LOAD( "v8c.bin", 0x0000, 0x0100, CRC(b35a6ca8) SHA1(d9195215bf2482a1b02a019bb708a9981eb0bdf8) )
-ROM_END
-
ROM_START( offender )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "off-2d", 0x0000, 0x0800, CRC(bb09d91e) SHA1(f47cd3fd91fc569c7a9bb6e485a3281b92656b7f) )
@@ -876,11 +742,6 @@ HACK( 2000, mooncmst, mooncrst, mooncrst, mooncrst, galaxian_state, mooncrst, RO
HACK( 1980, mooncrs5, mooncrst, mooncrst, mooncrst, galaxian_state, mooncrsu, ROT90, "bootleg", "Moon Cresta", MACHINE_SUPPORTS_SAVE )
-/* Multigames */
-HACK( 2002, fourplay, 0, fourplay, galaxian, galaxian_state, fourplay, ROT90, "Macro", "Four Play", MACHINE_SUPPORTS_SAVE )
-HACK( 2001, videight, 0, videight, warofbug, galaxian_state, videight, ROT90, "Macro", "Video Eight", MACHINE_SUPPORTS_SAVE )
-
-
/* Other */
HACK( 1981, jumpbugx, 0, jumpbugx, jumpbug, galaxian_state, jumpbug, ROT90, "Rock-ola", "Jump Bug (Extra Sounds)", MACHINE_SUPPORTS_SAVE )
HACK( 1982, monstrz, 0, sfx, sfx, galaxian_state, sfx, ORIENTATION_FLIP_X, "Nihon Game Co", "Monster Zero", MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/ir.cpp b/docs/release/src/hbmame/drivers/ir.cpp
index f080d5dcd4f..a33de5ea7a9 100644
--- a/docs/release/src/hbmame/drivers/ir.cpp
+++ b/docs/release/src/hbmame/drivers/ir.cpp
@@ -525,10 +525,10 @@ MACHINE_CONFIG_START( ir_state::ir )
//MCFG_DEVICE_ADD("ay1", AY8910, XTAL_4MHz/2)
//MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
- MCFG_DEVICE_ADD("samples", SAMPLES, 0)
- MCFG_SAMPLES_CHANNELS(9)
- MCFG_SAMPLES_NAMES(ir_sample_names)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+ SAMPLES(config, m_samples);
+ m_samples->set_channels(9);
+ m_samples->set_samples_names(ir_sample_names);
+ m_samples->add_route(ALL_OUTPUTS, "mono", 1.0);
MACHINE_CONFIG_END
ROM_START( ir )
diff --git a/docs/release/src/hbmame/drivers/jrpacman.cpp b/docs/release/src/hbmame/drivers/jrpacman.cpp
index b86a2b5a8bb..3f36a6f6326 100644
--- a/docs/release/src/hbmame/drivers/jrpacman.cpp
+++ b/docs/release/src/hbmame/drivers/jrpacman.cpp
@@ -332,9 +332,9 @@ MACHINE_CONFIG_START( jrpacman_state::jrpacman )
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("namco", NAMCO, 3072000/32)
- MCFG_NAMCO_AUDIO_VOICES(3)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+ NAMCO(config, m_namco_sound, 3072000/32);
+ m_namco_sound->set_voices(3);
+ m_namco_sound->add_route(ALL_OUTPUTS, "mono", 1.0);
MACHINE_CONFIG_END
diff --git a/docs/release/src/hbmame/drivers/mhavoc.cpp b/docs/release/src/hbmame/drivers/mhavoc.cpp
new file mode 100644
index 00000000000..95327337b5c
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/mhavoc.cpp
@@ -0,0 +1,88 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/mhavoc.cpp"
+
+
+
+void mhavoc_state::gammape_map(address_map &map)
+{
+ map(0x0000, 0x07ff).ram().mirror(0x1800); /* Program RAM (2K) */
+ map(0x2000, 0x203f).rw(FUNC(mhavoc_state::quad_pokeyn_r), FUNC(mhavoc_state::quad_pokeyn_w)).mirror(0x07C0); /* Quad Pokey read/write */
+ map(0x2800, 0x2800).portr("IN1").mirror(0x07ff); /* Gamma Input Port */
+ map(0x3000, 0x3000).r(FUNC(mhavoc_state::mhavoc_alpha_r)).mirror(0x07ff); /* Alpha Comm. Read Port */
+ map(0x3800, 0x3803).portr("DIAL").mirror(0x07fc); /* Roller Controller Input */
+ map(0x4000, 0x4000).portr("DSW2").w(FUNC(mhavoc_state::mhavoc_gamma_irq_ack_w)).mirror(0x07ff); /* DSW at 8S, IRQ Acknowledge */
+ map(0x4800, 0x4800).w(FUNC(mhavoc_state::mhavoc_out_1_w)).mirror(0x07ff); /* Coin Counters */
+ map(0x5000, 0x5000).w(FUNC(mhavoc_state::mhavoc_alpha_w)).mirror(0x07ff); /* Alpha Comm. Write Port */
+ map(0x5800, 0x5800).w(FUNC(mhavoc_state::mhavocrv_speech_data_w)).mirror(0x06ff); /* TMS5220 data write */
+ map(0x5900, 0x5900).w(FUNC(mhavoc_state::mhavocrv_speech_strobe_w)).mirror(0x06ff); /* TMS5220 /WS strobe write */
+ map(0x6000, 0x61ff).rw("eeprom", FUNC(eeprom_parallel_28xx_device::read), FUNC(eeprom_parallel_28xx_device::write)).mirror(0x1e00); /* EEROM */
+ map(0x8000, 0xffff).rom(); /* Program ROM (32K) */
+}
+
+void mhavoc_state::alphape_map(address_map &map)
+{
+ map(0x0000, 0x01ff).ram();
+ map(0x0200, 0x07ff).bankrw("bank1").share("zram0");
+ map(0x0800, 0x09ff).ram();
+ map(0x0a00, 0x0fff).bankrw("bank1").share("zram1");
+ map(0x1000, 0x1000).r(FUNC(mhavoc_state::mhavoc_gamma_r)); /* Gamma Read Port */
+ map(0x1200, 0x1200).portr("IN0").nopw(); /* Alpha Input Port 0 */
+ map(0x1400, 0x141f).ram().share("colorram"); /* ColorRAM */
+ map(0x1600, 0x1600).w(FUNC(mhavoc_state::mhavoc_out_0_w)); /* Control Signals */
+ map(0x1640, 0x1640).w("avg", FUNC(avg_mhavoc_device::go_w)); /* Vector Generator GO */
+ map(0x1680, 0x1680).w("watchdog", FUNC(watchdog_timer_device::reset_w)); /* Watchdog Clear */
+ map(0x16c0, 0x16c0).w("avg", FUNC(avg_mhavoc_device::reset_w)); /* Vector Generator Reset */
+ map(0x1700, 0x1700).w(FUNC(mhavoc_state::mhavoc_alpha_irq_ack_w)); /* IRQ ack */
+ //map(0x1740, 0x1740).w(FUNC(mhavoc_state::mhavocpe_rom_banksel_w)); /* Program ROM Page Select */
+ map(0x1740, 0x1740).lw8("bnk", [this] (u8 data) { membank("bank2")->set_entry((data & 1) | ((data & 2)<<1) | ((data & 4)>>1)); });
+ map(0x1780, 0x1780).w(FUNC(mhavoc_state::mhavoc_ram_banksel_w)); /* Program RAM Page Select */
+ map(0x17c0, 0x17c0).w(FUNC(mhavoc_state::mhavoc_gamma_w)); /* Gamma Communication Write Port */
+ map(0x1800, 0x1fff).ram(); /* Shared Beta Ram */
+ map(0x2000, 0x3fff).bankr("bank2"); /* Paged Program ROM (32K) */
+ map(0x4000, 0x4fff).ram().share("vectorram").region("alpha", 0x4000); /* Vector Generator RAM */
+ map(0x5000, 0x7fff).rom(); /* Vector ROM */
+ map(0x8000, 0xffff).rom(); /* Program ROM (32K) */
+}
+
+void mhavoc_state::mhavocpe(machine_config &config)
+{
+ mhavocrv(config);
+
+ /* basic machine hardware */
+ m_alpha->set_addrmap(AS_PROGRAM, &mhavoc_state::alphape_map);
+ m_gamma->set_addrmap(AS_PROGRAM, &mhavoc_state::gammape_map);
+}
+
+
+ROM_START( mhavocpe )
+ /* Alpha Processor ROMs */
+ ROM_REGION( 0x20000, "alpha", 0 ) /* 152KB for ROMs */
+ /* Vector Generator ROM */
+ ROM_LOAD( "mhpe.6kl", 0x05000, 0x2000, CRC(4c05b1a8) SHA1(89b524182fcfd966d6a7e3188235c957c451b8a9) )
+
+ /* Program ROM */
+ ROM_LOAD( "mhpe.1mn", 0x08000, 0x4000, CRC(3b691eff) SHA1(e8227d1458e3ed4d0e8444ec23f2c2d45a0d93b8) )
+ ROM_LOAD( "mhpe.1l", 0x0c000, 0x4000, CRC(fb53dae6) SHA1(08e9bd60e801778d3521d64817a10ba1ed74f4ff) )
+
+ /* Paged Program ROM */
+ ROM_LOAD( "mhpe.1q", 0x10000, 0x8000, CRC(660e3d57) SHA1(6eddf1335c536406080eab73f5501a202fb0583d) ) /* page 0+1+4+5 */
+ ROM_LOAD( "mhpe.1np", 0x18000, 0x8000, CRC(c1a70bad) SHA1(0b72b6817e2f00d2c001ac61ebd2cd42ff7785c9) ) /* page 2+3+6+7 */
+
+ /* Paged Vector Generator ROM */
+ ROM_REGION( 0x8000, "avgdvg", 0 )
+ ROM_LOAD( "mhpe.6h", 0x0000, 0x4000, CRC(79fc58c0) SHA1(7b40dfb89bc4078e2bd6f89a570f2be9cca15df9) ) /* page 0+1 */
+ ROM_LOAD( "mhpe.6jk", 0x4000, 0x4000, CRC(dc78b802) SHA1(6b951982232de08d32d3a2d01814cc28f89d2120) ) /* page 2+3 */
+
+ /* Gamma Processor ROM */
+ ROM_REGION( 0x10000, "gamma", 0 )
+ ROM_LOAD( "mhpe.9s", 0x08000, 0x8000, CRC(d42ee58e) SHA1(667aec3c3e93df3f8dedddb0db1188291e37630b) ) /* 32K Here */
+
+ /* AVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "036408-01.b1", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+ROM_END
+
+
+GAME( 2018, mhavocpe, mhavoc, mhavocpe, mhavocrv, mhavoc_state, init_mhavocrv, ROT0, "HaxRus", "Major Havoc - The Promised End (v0.21)", MACHINE_SUPPORTS_SAVE )
+
diff --git a/docs/release/src/hbmame/drivers/monaco.cpp b/docs/release/src/hbmame/drivers/monaco.cpp
index e6b5de03f46..ad2224de62c 100644
--- a/docs/release/src/hbmame/drivers/monaco.cpp
+++ b/docs/release/src/hbmame/drivers/monaco.cpp
@@ -1458,10 +1458,10 @@ MACHINE_CONFIG_START( monaco_state::monaco )
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("samples", SAMPLES, 0)
- MCFG_SAMPLES_CHANNELS(5)
- MCFG_SAMPLES_NAMES(monaco_sample_names)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90)
+ SAMPLES(config, m_samples);
+ m_samples->set_channels(5);
+ m_samples->set_samples_names(monaco_sample_names);
+ m_samples->add_route(ALL_OUTPUTS, "mono", 0.90);
MACHINE_CONFIG_END
/*****************************************************************/
diff --git a/docs/release/src/hbmame/drivers/neogeo1.cpp b/docs/release/src/hbmame/drivers/neogeo1.cpp
index 5544ad6bbd6..a1f78d0f382 100644
--- a/docs/release/src/hbmame/drivers/neogeo1.cpp
+++ b/docs/release/src/hbmame/drivers/neogeo1.cpp
@@ -1086,6 +1086,30 @@ ROM_START( karnovreh ) /* Karnov's Revenge - Enhance by Ydmis - (Can choose Big
ROM_LOAD16_BYTE( "066.c6", 0x800001, 0x200000, CRC(c15c01ed) SHA1(7cf5583e6610bcdc3b332896cefc71df84fb3f19) )
ROM_END
+// Default controls changed. To get old ones hold start while selecting your character.
+// Adds Clown's and Karnov's stage to versus stage rotation.
+// Gold font is now Cyan. Character select screen background is deep purple.
+// by mountainmanjed with help from anotak.
+ROM_START( karnovrh )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "066h.p1", 0x000000, 0x100000, CRC(00aaf657) SHA1(dcb2453fea28733f94a480e8a72035e5d5d66aba) )
+
+ NEO_SFIX_128K( "066.s1", CRC(bae5d5e5) SHA1(aa69d9b235b781ec51f72a528fada9cb12e72cbc) )
+
+ NEO_BIOS_AUDIO_128K( "066.m1", CRC(030beae4) SHA1(ceb6ee6c09514504efacdbca7b280901e4c97084) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "066.v1", 0x000000, 0x200000, CRC(0b7ea37a) SHA1(34e7d4f6db053674a7e8c8b2e3e398777d5b02e6) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "066.c1", 0x000000, 0x200000, CRC(09dfe061) SHA1(ca4c0f0ce80967b4be2f18b72435c468bbfbac4c) )
+ ROM_LOAD16_BYTE( "066.c2", 0x000001, 0x200000, CRC(e0f6682a) SHA1(addb4fbc30da2b8ffc86819d92a874eb232f67dd) )
+ ROM_LOAD16_BYTE( "066.c3", 0x400000, 0x200000, CRC(a673b4f7) SHA1(d138f5b38fd65c61549ce36f5c4983f7c8a3e7f6) )
+ ROM_LOAD16_BYTE( "066.c4", 0x400001, 0x200000, CRC(cb3dc5f4) SHA1(865d9ccfc3df517c341d6aac16120f6b6aa759fe) )
+ ROM_LOAD16_BYTE( "066.c5", 0x800000, 0x200000, CRC(9a28785d) SHA1(19723e1f7ff429e8a038d89488b279f830dfaf6e) )
+ ROM_LOAD16_BYTE( "066.c6", 0x800001, 0x200000, CRC(c15c01ed) SHA1(7cf5583e6610bcdc3b332896cefc71df84fb3f19) )
+ROM_END
+
ROM_START( kizunab ) /* Enhance by Ydmis - (Can choose 2 hidden characters) */
ROM_REGION( 0x200000, "maincpu", 0 )
@@ -2939,6 +2963,7 @@ HACK( 200?, kabukiklgmc, kabukikl, neogeo_noslot, neogeo, neogeo_state,
HACK( 200?, kabukiklmc, kabukikl, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami[EGCG]", "Far East of Eden (Unlimited magic power)", MACHINE_SUPPORTS_SAVE )
HACK( 200?, kabukiklyc, kabukikl, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami[EGCG] and Ydmis", "Far East of Eden (Add Char - Magic always max)", MACHINE_SUPPORTS_SAVE ) // Manto, Karakuri, Jyashinsai and Lucifeller - Based on kabukleh
+HACK( 200?, karnovrh, karnovr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Unknown", "Karnov's Revenge (hack)", MACHINE_SUPPORTS_SAVE )
HACK( 200?, karnovreh, karnovr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Karnov's Revenge (Add hidden characters-Enable Bull v1)", MACHINE_SUPPORTS_SAVE ) // Big Tornado
HACK( 200?, kizunab, kizuna, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kizuna Encounter (Enable hidden characters)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/pacman.cpp b/docs/release/src/hbmame/drivers/pacman.cpp
index 92453b158ba..762a4a82795 100644
--- a/docs/release/src/hbmame/drivers/pacman.cpp
+++ b/docs/release/src/hbmame/drivers/pacman.cpp
@@ -451,9 +451,9 @@ MACHINE_CONFIG_START( pacman_state::pacman )
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("namco", NAMCO, MASTER_CLOCK/6/32)
- MCFG_NAMCO_AUDIO_VOICES(3)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+ NAMCO(config, m_namco_sound, MASTER_CLOCK/6/32);
+ m_namco_sound->set_voices(3);
+ m_namco_sound->add_route(ALL_OUTPUTS, "mono", 1.0);
MACHINE_CONFIG_END
MACHINE_CONFIG_START( pacman_state::pacmanx )
diff --git a/docs/release/src/hbmame/drivers/schaser.cpp b/docs/release/src/hbmame/drivers/schaser.cpp
index 753a3bcd741..4d7a2da4471 100644
--- a/docs/release/src/hbmame/drivers/schaser.cpp
+++ b/docs/release/src/hbmame/drivers/schaser.cpp
@@ -102,7 +102,7 @@ private:
required_shared_ptr<uint8_t> m_p_ram;
required_shared_ptr<uint8_t> m_p_colorram;
required_device<sn76477_device> m_sn;
- required_device<discrete_device> m_discrete;
+ required_device<discrete_sound_device> m_discrete;
required_device<timer_device> m_555_timer;
required_device<screen_device> m_screen;
};
@@ -140,7 +140,7 @@ private:
#define SCHASER_EXP_SND NODE_11
#define SCHASER_MUSIC_SND NODE_12
-DISCRETE_SOUND_START(schaser)
+DISCRETE_SOUND_START(schaser_discrete)
/************************************************/
/* Input register mapping for schaser */
/************************************************/
@@ -567,27 +567,26 @@ MACHINE_CONFIG_START( sc_state::schasercv )
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("snsnd", SN76477, 0)
- MCFG_SN76477_NOISE_PARAMS(RES_K(47), RES_K(330), CAP_P(470)) // noise + filter
- MCFG_SN76477_DECAY_RES(RES_M(2.2)) // decay_res
- MCFG_SN76477_ATTACK_PARAMS(CAP_U(1.0), RES_K(4.7)) // attack_decay_cap + attack_res
- MCFG_SN76477_AMP_RES(0) // amplitude_res
- MCFG_SN76477_FEEDBACK_RES(RES_K(33)) // feedback_res
- MCFG_SN76477_VCO_PARAMS(0, CAP_U(0.1), RES_K(39)) // VCO volt + cap + res
- MCFG_SN76477_PITCH_VOLTAGE(5.0) // pitch_voltage
- MCFG_SN76477_SLF_PARAMS(CAP_U(1.0), RES_K(120)) // slf caps + res
- MCFG_SN76477_ONESHOT_PARAMS(CAP_U(0.1), RES_K(220)) // oneshot caps + res
- MCFG_SN76477_VCO_MODE(1) // VCO mode
- MCFG_SN76477_MIXER_PARAMS(0, 0, 0) // mixer A, B, C
- MCFG_SN76477_ENVELOPE_PARAMS(1, 0) // envelope 1, 2
- MCFG_SN76477_ENABLE(1) // enable
- MCFG_SOUND_ROUTE(0, "discrete", 1.0, 0)
-
- MCFG_DEVICE_ADD("discrete", DISCRETE, 0)
- MCFG_DISCRETE_INTF(schaser)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-
- MCFG_TIMER_DRIVER_ADD("schaser_sh_555", sc_state, schaser_effect_555_cb)
+ sn76477_device &snsnd(SN76477(config, "snsnd"));
+ snsnd.set_noise_params(RES_K(47), RES_K(330), CAP_P(470)); // noise + filter
+ snsnd.set_decay_res(RES_M(2.2));
+ snsnd.set_attack_params(CAP_U(1.0), RES_K(4.7)); // attack_decay_cap; attack resistor
+ snsnd.set_amp_res(0); // amplitude res
+ snsnd.set_feedback_res(RES_K(33));
+ snsnd.set_vco_params(0, CAP_U(0.1), RES_K(39)); // VCO volt; cap; res
+ snsnd.set_pitch_voltage(5.0);
+ snsnd.set_slf_params(CAP_U(1.0), RES_K(120));
+ snsnd.set_oneshot_params(CAP_U(0.1), RES_K(220));
+ snsnd.set_vco_mode(1);
+ snsnd.set_mixer_params(0, 0, 0); // mixer A;B;C
+ snsnd.set_envelope_params(1, 0); // envelope 1;2
+ snsnd.set_enable(1);
+ snsnd.add_route(0, "discrete", 1.0, 0);
+
+ DISCRETE(config, m_discrete, schaser_discrete);
+ m_discrete->add_route(ALL_OUTPUTS, "mono", 1.0);
+
+ TIMER(config, "schaser_sh_555").configure_generic(FUNC(sc_state::schaser_effect_555_cb));
MACHINE_CONFIG_END
ROM_START( schasrcv )
diff --git a/docs/release/src/hbmame/drivers/segac2.cpp b/docs/release/src/hbmame/drivers/segac2.cpp
index 5c686bd8e4e..d88ff7caa49 100644
--- a/docs/release/src/hbmame/drivers/segac2.cpp
+++ b/docs/release/src/hbmame/drivers/segac2.cpp
@@ -8,8 +8,43 @@
ROM_START( c2frog )
ROM_REGION( 0x1000000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "epr13114.32", 0x000000, 0x020000, CRC(d7039bd3) SHA1(82b9e3a760ebc845afe7bd78f22b897e1a530651) )
- ROM_LOAD16_BYTE( "epr13113.31", 0x000001, 0x020000, CRC(754b111a) SHA1(5542fc3b955df843e15e7c98aebc4f80c7d44b69) )
+ ROM_LOAD16_BYTE( "c2frog.ic32", 0x000000, 0x020000, CRC(d7039bd3) SHA1(82b9e3a760ebc845afe7bd78f22b897e1a530651) )
+ ROM_LOAD16_BYTE( "c2frog.ic31", 0x000001, 0x020000, CRC(754b111a) SHA1(5542fc3b955df843e15e7c98aebc4f80c7d44b69) )
ROM_END
-HACK( 2007, c2frog, 0, segac, columns, segac2_state, columns, ROT0, "Rastersoft", "Frog Feast (Sega C2 hardware)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2007, c2frog, 0, segac, columns, segac2_state, init_columns, ROT0, "Rastersoft", "Frog Feast (Sega C2 hardware)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
+
+
+
+static INPUT_PORTS_START( ssonicbr )
+ PORT_INCLUDE( systemc_generic )
+ PORT_MODIFY("P1")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) /* Button 2 Unused */
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) /* Button 3 Unused */
+ PORT_MODIFY("P2")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) /* Button 2 Unused */
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) /* Button 3 Unused */
+ PORT_MODIFY("DSW")
+ PORT_DIPNAME( 0x01, 0x01, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:1")
+ PORT_DIPSETTING( 0x01, DEF_STR( On ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPUNKNOWN_DIPLOC( 0x02, IP_ACTIVE_LOW, "SW2:2" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW2:3" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x08, IP_ACTIVE_LOW, "SW2:4" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x10, IP_ACTIVE_LOW, "SW2:5" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x20, IP_ACTIVE_LOW, "SW2:6" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x40, IP_ACTIVE_LOW, "SW2:7" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW2:8" )
+INPUT_PORTS_END
+
+
+
+ROM_START( ssonicbr )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "ssonicbr.ic32", 0x000000, 0x040000, CRC(cf254ecd) SHA1(4bb295ec80f8ddfeab4e360eebf12c5e2dfb9800) )
+ ROM_LOAD16_BYTE( "ssonicbr.ic31", 0x000001, 0x040000, CRC(03709746) SHA1(0b457f557da77acd3f43950428117c1decdfaf26) )
+ ROM_REGION( 0x020000, "upd", 0 )
+ ROM_LOAD( "ssonicbr.ic4", 0x000000, 0x020000, CRC(78e56a51) SHA1(8a72c12975cd74919b4337e0f681273e6b5cbbc6) )
+ROM_END
+
+GAME( 1992, ssonicbr, 0, segac2, ssonicbr, segac2_state, init_bloxeedc, ROT0, "Sega", "SegaSonic Bros. (Japan, prototype)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/spacmiss.cpp b/docs/release/src/hbmame/drivers/spacmiss.cpp
index 5737e4cb2b8..a969acf5152 100644
--- a/docs/release/src/hbmame/drivers/spacmiss.cpp
+++ b/docs/release/src/hbmame/drivers/spacmiss.cpp
@@ -423,10 +423,10 @@ MACHINE_CONFIG_START( sm_state::spacmissx )
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("samples", SAMPLES, 0)
- MCFG_SAMPLES_CHANNELS(6)
- MCFG_SAMPLES_NAMES(invaders_sample_names)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+ SAMPLES(config, m_samples);
+ m_samples->set_channels(6);
+ m_samples->set_samples_names(invaders_sample_names);
+ m_samples->add_route(ALL_OUTPUTS, "mono", 1.0);
MCFG_DEVICE_ADD("discrete", DISCRETE, spacmissx_disc)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
diff --git a/docs/release/src/hbmame/drivers/ssv.cpp b/docs/release/src/hbmame/drivers/ssv.cpp
index 8fd1bc4237a..88122dd2d25 100644
--- a/docs/release/src/hbmame/drivers/ssv.cpp
+++ b/docs/release/src/hbmame/drivers/ssv.cpp
@@ -37,9 +37,9 @@ ROM_START( survartss01 )
ROM_LOAD16_WORD_SWAP( "si001-13.u6", 0x300000, 0x100000, CRC(d66a7e26) SHA1(57b659daef00421b6742963f792bd5e020f625c9) )
ROM_REGION( 0x0200, "plds", 0 )
- ROM_LOAD( "gal16v8b.u5", 0x0000, 0x0117, CRC(378ce368) SHA1(cc068c9b63e6f91165f9caec581645ad45b2d3d0) )
+ ROM_LOAD_OPTIONAL( "gal16v8b.u5", 0x0000, 0x0117, CRC(378ce368) SHA1(cc068c9b63e6f91165f9caec581645ad45b2d3d0) )
ROM_END
-/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS */
+// YEAR NAME PARENT MACHINE INPUT CLASS INIT MONITOR COMPANY FULLNAME FLAGS
// Survival Arts
-GAME( 200?, survartss01, survarts, survarts, survarts, ssv_state, init_survarts, ROT0, "DDJ", "Survival Arts (Easy Move)(World)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) \ No newline at end of file
+GAME( 200?, survartss01, survarts, survarts, survarts, ssv_state, init_ssv, ROT0, "DDJ", "Survival Arts (Easy Move)(World)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) \ No newline at end of file
diff --git a/docs/release/src/hbmame/drivers/tempest.cpp b/docs/release/src/hbmame/drivers/tempest.cpp
index 57382231b66..c668d8bfe84 100644
--- a/docs/release/src/hbmame/drivers/tempest.cpp
+++ b/docs/release/src/hbmame/drivers/tempest.cpp
@@ -137,6 +137,8 @@ ROM_START( temped )
ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+
+ ROM_REGION(0x40, "earom", ROMREGION_ERASE00 ) // default earom to 0
ROM_END
ROM_START( tempestm )
@@ -171,6 +173,8 @@ ROM_START( tempestm )
ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+
+ ROM_REGION(0x40, "earom", ROMREGION_ERASE00 ) // default earom to 0
ROM_END
ROM_START( tempall )
@@ -205,6 +209,8 @@ ROM_START( tempall )
ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+
+ ROM_REGION(0x40, "earom", ROMREGION_ERASE00 ) // default earom to 0
ROM_END
ROM_START( temptwst )
@@ -239,16 +245,18 @@ ROM_START( temptwst )
ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+
+ ROM_REGION(0x40, "earom", ROMREGION_ERASE00 ) // default earom to 0
ROM_END
-ROM_START( tmptwsta )
+ROM_START( temptwsta )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "tempall.113", 0x9000, 0x0800, CRC(a9000137) SHA1(1dfb23f5d47e49923c681d4483d744795d589af0) )
ROM_LOAD( "136002-114.e1", 0x9800, 0x0800, CRC(11077375) SHA1(ed8ff0ca969da6672a7683b93d4fcf2935a0d903) )
ROM_LOAD( "136002.115", 0xa000, 0x0800, CRC(f3e2827a) SHA1(bd04fcfbbba995e08c3144c1474fcddaaeb1c700) )
ROM_LOAD( "136002.316", 0xa800, 0x0800, CRC(aeb0f7e9) SHA1(a5cc25015b98692673cfc1c7c2e9634efd750870) )
ROM_LOAD( "136002.217", 0xb000, 0x0800, CRC(ef2eb645) SHA1(b1a2c969e8897e335d5354de6ae04a65d4b2a1e4) )
- ROM_LOAD( "tmptwsta.118", 0xb800, 0x0800, CRC(a45add57) SHA1(79748a415dbc0a5f600d38ac098bd2d63a4f9ecc) )
+ ROM_LOAD( "temptwsta.118", 0xb800, 0x0800, CRC(a45add57) SHA1(79748a415dbc0a5f600d38ac098bd2d63a4f9ecc) )
ROM_LOAD( "temptwst.119", 0xc000, 0x0800, CRC(571b1799) SHA1(d6e5615032bcae0018e388d7e7d8a00c42ff0c5a) )
ROM_LOAD( "136002.120", 0xc800, 0x0800, CRC(35619648) SHA1(48f1e8bed7ec6afa0b4c549a30e5ec331c071e40) )
ROM_LOAD( "temptwst.121", 0xd000, 0x0800, CRC(67619e6e) SHA1(4cf91abc535cc8c5de7e5f30fabe0876a5182b39) )
@@ -273,19 +281,21 @@ ROM_START( tmptwsta )
ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+
+ ROM_REGION(0x40, "earom", ROMREGION_ERASE00 ) // default earom to 0
ROM_END
-ROM_START( tmptwst2 )
+ROM_START( temptwst2 )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "tempall.113", 0x9000, 0x0800, CRC(a9000137) SHA1(1dfb23f5d47e49923c681d4483d744795d589af0) )
ROM_LOAD( "136002-114.e1", 0x9800, 0x0800, CRC(11077375) SHA1(ed8ff0ca969da6672a7683b93d4fcf2935a0d903) )
ROM_LOAD( "136002.115", 0xa000, 0x0800, CRC(f3e2827a) SHA1(bd04fcfbbba995e08c3144c1474fcddaaeb1c700) )
ROM_LOAD( "136002.316", 0xa800, 0x0800, CRC(aeb0f7e9) SHA1(a5cc25015b98692673cfc1c7c2e9634efd750870) )
ROM_LOAD( "136002.217", 0xb000, 0x0800, CRC(ef2eb645) SHA1(b1a2c969e8897e335d5354de6ae04a65d4b2a1e4) )
- ROM_LOAD( "tmptwst2.118", 0xb800, 0x0800, CRC(1c6827cb) SHA1(d5a555f6ad59630e6d33c4bacad80ee429349e59) )
+ ROM_LOAD( "temptwst2.118", 0xb800, 0x0800, CRC(1c6827cb) SHA1(d5a555f6ad59630e6d33c4bacad80ee429349e59) )
ROM_LOAD( "temptwst.119", 0xc000, 0x0800, CRC(571b1799) SHA1(d6e5615032bcae0018e388d7e7d8a00c42ff0c5a) )
ROM_LOAD( "136002.120", 0xc800, 0x0800, CRC(35619648) SHA1(48f1e8bed7ec6afa0b4c549a30e5ec331c071e40) )
- ROM_LOAD( "tmptwst2.121", 0xd000, 0x0800, CRC(c1bc4a69) SHA1(a60491fd7d6715118ed0d59dac0064c4263e15c6) )
+ ROM_LOAD( "temptwst2.121", 0xd000, 0x0800, CRC(c1bc4a69) SHA1(a60491fd7d6715118ed0d59dac0064c4263e15c6) )
ROM_LOAD( "136002.222", 0xd800, 0x0800, CRC(707bd5c3) SHA1(2f0af6fb7154c244c794f7247e5c16a1e06ddf7d) )
ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */
/* Vector ROM */
@@ -307,19 +317,21 @@ ROM_START( tmptwst2 )
ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+
+ ROM_REGION(0x40, "earom", ROMREGION_ERASE00 ) // default earom to 0
ROM_END
-ROM_START( tmptwst3 )
+ROM_START( temptwst3 )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "tempall.113", 0x9000, 0x0800, CRC(a9000137) SHA1(1dfb23f5d47e49923c681d4483d744795d589af0) )
ROM_LOAD( "136002-114.e1", 0x9800, 0x0800, CRC(11077375) SHA1(ed8ff0ca969da6672a7683b93d4fcf2935a0d903) )
ROM_LOAD( "136002.115", 0xa000, 0x0800, CRC(f3e2827a) SHA1(bd04fcfbbba995e08c3144c1474fcddaaeb1c700) )
ROM_LOAD( "136002.316", 0xa800, 0x0800, CRC(aeb0f7e9) SHA1(a5cc25015b98692673cfc1c7c2e9634efd750870) )
ROM_LOAD( "136002.217", 0xb000, 0x0800, CRC(ef2eb645) SHA1(b1a2c969e8897e335d5354de6ae04a65d4b2a1e4) )
- ROM_LOAD( "tmptwst3.118", 0xb800, 0x0800, CRC(c8e7693f) SHA1(18914841f3dc685d9a72bc2aaae940f6b6711e27) )
+ ROM_LOAD( "temptwst3.118", 0xb800, 0x0800, CRC(c8e7693f) SHA1(18914841f3dc685d9a72bc2aaae940f6b6711e27) )
ROM_LOAD( "temptwst.119", 0xc000, 0x0800, CRC(571b1799) SHA1(d6e5615032bcae0018e388d7e7d8a00c42ff0c5a) )
ROM_LOAD( "136002.120", 0xc800, 0x0800, CRC(35619648) SHA1(48f1e8bed7ec6afa0b4c549a30e5ec331c071e40) )
- ROM_LOAD( "tmptwst3.121", 0xd000, 0x0800, CRC(194b34a9) SHA1(86c34dcccc2054cad4f8c175c4db4d3856172f66) )
+ ROM_LOAD( "temptwst3.121", 0xd000, 0x0800, CRC(194b34a9) SHA1(86c34dcccc2054cad4f8c175c4db4d3856172f66) )
ROM_LOAD( "136002.222", 0xd800, 0x0800, CRC(707bd5c3) SHA1(2f0af6fb7154c244c794f7247e5c16a1e06ddf7d) )
ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */
/* Vector ROM */
@@ -341,19 +353,21 @@ ROM_START( tmptwst3 )
ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+
+ ROM_REGION(0x40, "earom", ROMREGION_ERASE00 ) // default earom to 0
ROM_END
-ROM_START( tmptwst4 )
+ROM_START( temptwst4 )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "tempall.113", 0x9000, 0x0800, CRC(a9000137) SHA1(1dfb23f5d47e49923c681d4483d744795d589af0) )
ROM_LOAD( "136002-114.e1", 0x9800, 0x0800, CRC(11077375) SHA1(ed8ff0ca969da6672a7683b93d4fcf2935a0d903) )
ROM_LOAD( "136002.115", 0xa000, 0x0800, CRC(f3e2827a) SHA1(bd04fcfbbba995e08c3144c1474fcddaaeb1c700) )
ROM_LOAD( "136002.316", 0xa800, 0x0800, CRC(aeb0f7e9) SHA1(a5cc25015b98692673cfc1c7c2e9634efd750870) )
ROM_LOAD( "136002.217", 0xb000, 0x0800, CRC(ef2eb645) SHA1(b1a2c969e8897e335d5354de6ae04a65d4b2a1e4) )
- ROM_LOAD( "tmptwst4.118", 0xb800, 0x0800, CRC(2b6fcca4) SHA1(adfd65c94c46235ba47017e726a7b3c554e8e07a) )
+ ROM_LOAD( "temptwst4.118", 0xb800, 0x0800, CRC(2b6fcca4) SHA1(adfd65c94c46235ba47017e726a7b3c554e8e07a) )
ROM_LOAD( "temptwst.119", 0xc000, 0x0800, CRC(571b1799) SHA1(d6e5615032bcae0018e388d7e7d8a00c42ff0c5a) )
ROM_LOAD( "136002.120", 0xc800, 0x0800, CRC(35619648) SHA1(48f1e8bed7ec6afa0b4c549a30e5ec331c071e40) )
- ROM_LOAD( "tmptwst4.121", 0xd000, 0x0800, CRC(7fde0be4) SHA1(3d06b0f0ef71132b3fa67ad8930e2dd334e90932) )
+ ROM_LOAD( "temptwst4.121", 0xd000, 0x0800, CRC(7fde0be4) SHA1(3d06b0f0ef71132b3fa67ad8930e2dd334e90932) )
ROM_LOAD( "136002.222", 0xd800, 0x0800, CRC(707bd5c3) SHA1(2f0af6fb7154c244c794f7247e5c16a1e06ddf7d) )
ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */
/* Vector ROM */
@@ -375,6 +389,8 @@ ROM_START( tmptwst4 )
ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+
+ ROM_REGION(0x40, "earom", ROMREGION_ERASE00 ) // default earom to 0
ROM_END
ROM_START( vbrakout )
@@ -404,6 +420,8 @@ ROM_START( vbrakout )
ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+
+ ROM_REGION(0x40, "earom", ROMREGION_ERASE00 ) // default earom to 0
ROM_END
ROM_START( temptlm )
@@ -438,6 +456,8 @@ ROM_START( temptlm )
ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+
+ ROM_REGION(0x40, "earom", ROMREGION_ERASE00 ) // default earom to 0
ROM_END
@@ -476,6 +496,8 @@ ROM_START( tvortex ) /* rev 1 */
ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+
+ ROM_REGION(0x40, "earom", ROMREGION_ERASE00 ) // default earom to 0
ROM_END
ROM_START( tvortexa ) /* rev 2? */
@@ -510,6 +532,8 @@ ROM_START( tvortexa ) /* rev 2? */
ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+
+ ROM_REGION(0x40, "earom", ROMREGION_ERASE00 ) // default earom to 0
ROM_END
ROM_START( aliensv ) /* rev 1 */
@@ -544,6 +568,8 @@ ROM_START( aliensv ) /* rev 1 */
ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+
+ ROM_REGION(0x40, "earom", ROMREGION_ERASE00 ) // default earom to 0
ROM_END
ROM_START( aliensva ) /* rev 2? */
@@ -578,10 +604,11 @@ ROM_START( aliensva ) /* rev 2? */
ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+
+ ROM_REGION(0x40, "earom", ROMREGION_ERASE00 ) // default earom to 0
ROM_END
/* tempest multigame */
-// 2018-10-31 marked as not working, as it will no longer go into the menu at boot
class tempmg_state : public tempest_state
{
@@ -629,7 +656,7 @@ void tempmg_state::init_tempmg()
void tempmg_state::tempmg_map(address_map &map) {
map(0x0000, 0x07ff).ram();
- map(0x0800, 0x080f).writeonly().share("colorram");
+ map(0x0800, 0x080f).ram().share("colorram");
map(0x0c00, 0x0c00).portr("IN0");
map(0x0d00, 0x0d00).portr("DSW1");
map(0x0e00, 0x0e00).portr("DSW2");
@@ -770,21 +797,23 @@ ROM_START( tempmg )
ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+
+ ROM_REGION(0x40, "earom", ROMREGION_ERASE00 ) // default earom to 0
ROM_END
-HACK( 2000, temped, tempest, tempest, tempest, tempest_state, 0, ROT270, "hack", "TempEd", MACHINE_SUPPORTS_SAVE )
-HACK( 2000, tempall, tempest, tempest, tempest, tempest_state, 0, ROT270, "hack", "Tempest All Levels", MACHINE_SUPPORTS_SAVE )
-HACK( 2000, temptwst, tempest, tempest, tempest, tempest_state, 0, ROT270, "Twisty", "Tempest Twisted", MACHINE_SUPPORTS_SAVE )
-HACK( 2000, tmptwsta, tempest, tempest, tempest, tempest_state, 0, ROT270, "Twisty", "Tempest Twisted (Alt)", MACHINE_SUPPORTS_SAVE )
-HACK( 2000, tmptwst2, tempest, tempest, tempest, tempest_state, 0, ROT270, "Twisty", "Tempest Twisty's Revenge", MACHINE_SUPPORTS_SAVE )
-HACK( 2000, tmptwst3, tempest, tempest, tempest, tempest_state, 0, ROT270, "Twisty", "Tempest Psycho Twist", MACHINE_SUPPORTS_SAVE )
-HACK( 2000, tmptwst4, tempest, tempest, tempest, tempest_state, 0, ROT270, "Twisty", "Tempest Twisted Maniac", MACHINE_SUPPORTS_SAVE )
-HACK( 2000, tempestm, tempest, tempest, tempest, tempest_state, 0, ROT270, "hack", "Tempest Mark's Hacks", MACHINE_SUPPORTS_SAVE )
-HACK( 2001, tempmg, tempest, tempmg, tempest, tempmg_state, tempmg, ROT270, "Clay Cowgill", "Tempest Multigame", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
-HACK( 1999, vbrakout, tempest, tempest, tempest, tempest_state, 0, ROT270, "Clay Cowgill", "Vector Breakout [h]", MACHINE_SUPPORTS_SAVE )
-HACK( 2000, temptlm, tempest, tempest, tempest, tempest_state, 0, ROT270, "hack", "Tempest Level Man", MACHINE_SUPPORTS_SAVE )
-HACK( 1980, tvortex, tempest, tempest, tempest, tempest_state, 0, ROT270, "Atari", "Vortex", MACHINE_SUPPORTS_SAVE )
-HACK( 1980, tvortexa, tempest, tempest, tempest, tempest_state, 0, ROT270, "Atari", "Vortex alt version", MACHINE_SUPPORTS_SAVE )
-HACK( 1980, aliensv, tempest, tempest, aliensv, tempest_state, 0, ROT270, "Atari", "Aliens", MACHINE_SUPPORTS_SAVE )
-HACK( 1980, aliensva, tempest, tempest, aliensv, tempest_state, 0, ORIENTATION_FLIP_Y ^ ROT270, "Atari", "Aliens alt version", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, temped, tempest, tempest, tempest, tempest_state, empty_init, ROT270, "hack", "TempEd", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, tempall, tempest, tempest, tempest, tempest_state, empty_init, ROT270, "hack", "Tempest All Levels", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, temptwst, tempest, tempest, tempest, tempest_state, empty_init, ROT270, "Twisty", "Tempest Twisted", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, temptwsta, tempest, tempest, tempest, tempest_state, empty_init, ROT270, "Twisty", "Tempest Twisted (Alt)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, temptwst2, tempest, tempest, tempest, tempest_state, empty_init, ROT270, "Twisty", "Tempest Twisty's Revenge", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, temptwst3, tempest, tempest, tempest, tempest_state, empty_init, ROT270, "Twisty", "Tempest Psycho Twist", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, temptwst4, tempest, tempest, tempest, tempest_state, empty_init, ROT270, "Twisty", "Tempest Twisted Maniac", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, tempestm, tempest, tempest, tempest, tempest_state, empty_init, ROT270, "hack", "Tempest Mark's Hacks", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, tempmg, tempest, tempmg, tempest, tempmg_state, init_tempmg, ROT270, "Clay Cowgill", "Tempest Multigame", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, vbrakout, tempest, tempest, tempest, tempest_state, empty_init, ROT270, "Clay Cowgill", "Vector Breakout [h]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, temptlm, tempest, tempest, tempest, tempest_state, empty_init, ROT270, "hack", "Tempest Level Man", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, tvortex, tempest, tempest, tempest, tempest_state, empty_init, ROT270, "Atari", "Vortex", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, tvortexa, tempest, tempest, tempest, tempest_state, empty_init, ROT270, "Atari", "Vortex alt version", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, aliensv, tempest, tempest, aliensv, tempest_state, empty_init, ROT270, "Atari", "Aliens", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, aliensva, tempest, tempest, aliensv, tempest_state, empty_init, ORIENTATION_FLIP_Y ^ ROT270, "Atari", "Aliens alt version", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/hbmame.lst b/docs/release/src/hbmame/hbmame.lst
index 38f687d7a87..aa89a370899 100644
--- a/docs/release/src/hbmame/hbmame.lst
+++ b/docs/release/src/hbmame/hbmame.lst
@@ -65,6 +65,9 @@ astrofbl /* Black Background */
asuka //parent
asukac // chinese
+@source:atarig42.cpp
+//dangerex
+
@source:atarisy1.cpp
atarisy1 //bios
indytemp //parent
@@ -1684,6 +1687,8 @@ dkrainbow
dkrdemo
dkchrmx // Sock Master - Christmas Remix 2017
dkspkyrmx // Sock Master - Spooky Remix Halloween Tournament 2018
+dktrainer
+dkpace
kong2600 /* Vic Twenty George hack of Donkey Kong */
nadkong
@@ -4608,6 +4613,11 @@ androdund /* 0049 (c) 1992 Visco */
ncommandd /* 0050 (c) 1992 Alpha Denshi Co. */
wh1d /* 0053 (c) 1992 Alpha Denshi Co. */
+@source:mhavoc.cpp
+mhavoc //parent
+mhavocrv //HB Jess M. Askey
+mhavocpe //HB Jess M. Askey
+
@source:midtunit.cpp
mk //parent
mkfr // french
@@ -7101,6 +7111,7 @@ kabukiklgmc
kabukiklmc
kabukiklyc
karnovreh
+karnovrh
kizunab
kizunaeh
lans2k4d
@@ -9596,10 +9607,10 @@ tempall
temped /* Tempest TempEd Hack */
tempestm
temptwst /* Twisty Hack */
-tmptwsta /* Twisty Hack 2000 */
-tmptwst2 /* Twisty Hack */
-tmptwst3 /* Twisty Hack */
-tmptwst4 /* Twisty Hack */
+temptwsta /* Twisty Hack 2000 */
+temptwst2 /* Twisty Hack */
+temptwst3 /* Twisty Hack */
+temptwst4 /* Twisty Hack */
vbrakout /* Clay Cowgill */
tempmg /* Clay Cowgill Multi-Tempest */
temptlm
diff --git a/docs/release/src/hbmame/video/galaxian.cpp b/docs/release/src/hbmame/video/galaxian.cpp
deleted file mode 100644
index c94dac4e83f..00000000000
--- a/docs/release/src/hbmame/video/galaxian.cpp
+++ /dev/null
@@ -1,87 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Robbbert
-#include "../mame/video/galaxian.cpp"
-
-
-/***************************************************************************
-
- HBMAME Video support for extra games
-
-***************************************************************************/
-
-
-
-
-
-/*************************************
- *
- * Four Play extensions
- *
- *************************************/
-
-/* gfxbank[4] is used as a cpu bank number, and gfxbank[0] for graphics banking */
-WRITE8_MEMBER( galaxian_state::fourplay_rombank_w )
-{
- m_gfxbank[4] = (m_gfxbank[4] & (2 - offset)) | (data << offset);
-
- m_gfxbank[0] = (m_gfxbank[4] == 3); // 1 = true, 0 = false
-
- membank("bank1")->set_entry( m_gfxbank[4] );
-}
-
-
-
-/*************************************
- *
- * Video Eight extensions
- *
- *************************************/
-
-void galaxian_state::videight_extend_tile_info(uint16_t *code, uint8_t *color, uint8_t attrib, uint8_t x)
-{
- *code |= (m_gfxbank[0] << 8);
- *color |= (m_gfxbank[4] << 3);
-}
-
-void galaxian_state::videight_extend_sprite_info(const uint8_t *base, uint8_t *sx, uint8_t *sy, uint8_t *flipx, uint8_t *flipy, uint16_t *code, uint8_t *color)
-{
- *code |= (m_gfxbank[0] << 6);
- *color |= (m_gfxbank[4] << 3);
-}
-
-
-/* This handles the main bankswitching for code and one-bank gfx games */
-WRITE8_MEMBER( galaxian_state::videight_rombank_w )
-{
- uint8_t gfxbanks[] = { 0, 10, 2, 8, 1, 9, 4, 11 };
- if (offset == 2)
- galaxian_stars_enable_w( space, 0, data );
- else
- {
- m_gfxbank[4] = (m_gfxbank[4] & (6 - offset)) | (data << ((offset + 1) >> 1));
- galaxian_gfxbank_w (space, 0, gfxbanks[m_gfxbank[4]]);
- membank("bank1")->set_entry( m_gfxbank[4] );
- }
-}
-
-/* This handles those games with multiple gfx banks */
-WRITE8_MEMBER( galaxian_state::videight_gfxbank_w )
-{
- /* Moon Cresta (mooncrgx) */
- if (( data < 2 ) && (m_gfxbank[4] == 3))
- {
- uint8_t gfxbanks[] = { 8, 12, 8, 14, 8, 13, 8, 15 };
- if (!offset) m_gfxbank[3] = (m_gfxbank[3] & 6) | data;
- if (offset == 1) m_gfxbank[3] = (m_gfxbank[3] & 5) | (data << 1);
- if (offset == 2) m_gfxbank[3] = (m_gfxbank[3] & 3) | (data << 2);
- galaxian_gfxbank_w(space, 0, gfxbanks[m_gfxbank[3]]);
- }
-
- /* Uniwar S */
- if (( data < 2 ) && (m_gfxbank[4] == 2) && (offset == 2))
- galaxian_gfxbank_w( space, 0, data+2 );
-
- /* Pisces (piscesb) */
- if (( data < 2 ) && (m_gfxbank[4] == 6) && (offset == 2))
- galaxian_gfxbank_w( space, 0, data+4 );
-}
diff --git a/docs/release/src/mame/drivers/jrpacman.cpp b/docs/release/src/mame/drivers/jrpacman.cpp
index 4b3c8fab50b..7a9a3382645 100644
--- a/docs/release/src/mame/drivers/jrpacman.cpp
+++ b/docs/release/src/mame/drivers/jrpacman.cpp
@@ -301,14 +301,12 @@ WRITE_LINE_MEMBER(jrpacman_state::vblank_irq)
m_maincpu->set_input_line(0, HOLD_LINE);
}
-MACHINE_CONFIG_START(jrpacman_state::jrpacman)
-
+void jrpacman_state::jrpacman(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 18432000/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(main_map)
- MCFG_DEVICE_IO_MAP(port_map)
-// MCFG_DEVICE_VBLANK_INT_DRIVER("screen", jrpacman_state, vblank_irq)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pacman_state, pacman_interrupt) // HBMAME
+ Z80(config, m_maincpu, 18432000/6); /* 3.072 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &jrpacman_state::main_map);
+ m_maincpu->set_addrmap(AS_IO, &jrpacman_state::port_map);
ls259_device &latch1(LS259(config, "latch1")); // 5P
latch1.q_out_cb<0>().set(FUNC(jrpacman_state::irq_mask_w));
@@ -326,28 +324,30 @@ MACHINE_CONFIG_START(jrpacman_state::jrpacman)
WATCHDOG_TIMER(config, m_watchdog);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60.606060)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(36*8, 28*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(jrpacman_state, screen_update_pacman)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, jrpacman_state, vblank_irq))
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_jrpacman)
- MCFG_PALETTE_ADD("palette", 128*4)
- MCFG_PALETTE_INDIRECT_ENTRIES(32)
- MCFG_PALETTE_INIT_OWNER(jrpacman_state,pacman)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60.606060);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(36*8, 28*8);
+ screen.set_visarea(0*8, 36*8-1, 0*8, 28*8-1);
+ screen.set_screen_update(FUNC(jrpacman_state::screen_update_pacman));
+ screen.set_palette(m_palette);
+ //screen.screen_vblank().set(FUNC(jrpacman_state::vblank_irq)); // HBMAME
+ screen.screen_vblank().set(FUNC(jrpacman_state::pacman_interrupt)); // HBMAME
+
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_jrpacman);
+ PALETTE(config, m_palette, 128*4);
+ m_palette->set_indirect_entries(32);
+ m_palette->set_init(FUNC(jrpacman_state::palette_init_pacman));
+
MCFG_VIDEO_START_OVERRIDE(jrpacman_state,jrpacman)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("namco", NAMCO, 3072000/32)
- MCFG_NAMCO_AUDIO_VOICES(3)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ NAMCO(config, m_namco_sound, 3072000/32);
+ m_namco_sound->set_voices(3);
+ m_namco_sound->add_route(ALL_OUTPUTS, "mono", 1.0);
+}
diff --git a/docs/release/src/mame/drivers/model2.cpp b/docs/release/src/mame/drivers/model2.cpp
index e03f7dfbac9..3045b0e1535 100644
--- a/docs/release/src/mame/drivers/model2.cpp
+++ b/docs/release/src/mame/drivers/model2.cpp
@@ -4,7 +4,7 @@
Sega Model 2: i960KB + (5x TGP) or (2x SHARC) or (2x TGPx4)
System 24 tilemaps
Custom Sega/Lockheed-Martin rasterization hardware
- (68000 + YM3834 + 2x MultiPCM) or (68000 + SCSP)
+ (68000 + YM3438 + 2x MultiPCM) or (68000 + SCSP)
Hardware and protection reverse-engineering and general assistance by ElSemi.
MAME driver by R. Belmont, Olivier Galibert, ElSemi and Angelo Salese.
@@ -158,7 +158,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(model2_state::model2_timer_cb)
m_timerrun[tnum] = 0;
}
-MACHINE_START_MEMBER( model2_state, model2 )
+void model2_state::machine_start()
{
// initialize custom debugger pool, @see machine/model2.cpp
debug_init();
@@ -183,9 +183,9 @@ MACHINE_START_MEMBER( model2_state, model2 )
save_item(NAME(m_geo_read_start_address));
}
-MACHINE_START_MEMBER(model2_tgp_state,model2_tgp)
+void model2_tgp_state::machine_start()
{
- MACHINE_START_CALL_MEMBER(model2);
+ model2_state::machine_start();
m_copro_fifo_in->setup(16,
[this]() { m_copro_tgp->stall(); },
@@ -206,9 +206,9 @@ MACHINE_START_MEMBER(model2_tgp_state,model2_tgp)
[ ]() { });
}
-MACHINE_START_MEMBER(model2b_state,model2b)
+void model2b_state::machine_start()
{
- MACHINE_START_CALL_MEMBER(model2);
+ model2_state::machine_start();
m_copro_fifo_in->setup(16,
[ ]() { },
@@ -228,9 +228,9 @@ MACHINE_START_MEMBER(model2b_state,model2b)
[this]() { m_copro_adsp->set_flag_input(1, m_copro_fifo_in->is_full()); });
}
-MACHINE_START_MEMBER(model2c_state,model2c)
+void model2c_state::machine_start()
{
- MACHINE_START_CALL_MEMBER(model2);
+ model2_state::machine_start();
m_copro_fifo_in->setup(16,
[ ]() { },
@@ -250,10 +250,8 @@ MACHINE_START_MEMBER(model2c_state,model2c)
[ ]() { });
}
-MACHINE_RESET_MEMBER( model2_state, model2_common )
+void model2_state::machine_reset()
{
- int i;
-
m_intreq = 0;
m_intena = 0;
m_coproctl = 0;
@@ -269,14 +267,14 @@ MACHINE_RESET_MEMBER( model2_state, model2_common )
m_timerrun[0] = m_timerrun[1] = m_timerrun[2] = m_timerrun[3] = 0;
- for (i=0; i<4; i++)
+ for (int i = 0; i < 4; i++)
m_timers[i]->reset();
m_uart->write_cts(0);
// initialize bufferram to a sane default
// TODO: HW can probably parse this at will somehow ...
- for (i=0;i<0x20000/4;i++)
+ for (int i = 0; i < 0x20000/4; i++)
m_bufferram[i] = 0x07800f0f;
m_copro_fifo_in->clear();
@@ -285,7 +283,7 @@ MACHINE_RESET_MEMBER( model2_state, model2_common )
m_geo_read_start_address = 0;
}
-MACHINE_RESET_MEMBER(model2_state,model2_scsp)
+void model2_state::reset_model2_scsp()
{
membank("bank4")->set_base(memregion("samples")->base() + 0x200000);
membank("bank5")->set_base(memregion("samples")->base() + 0x600000);
@@ -295,29 +293,24 @@ MACHINE_RESET_MEMBER(model2_state,model2_scsp)
m_audiocpu->reset();
}
-MACHINE_RESET_MEMBER(model2_tgp_state,model2_tgp)
+void model2_tgp_state::machine_reset()
{
- MACHINE_RESET_CALL_MEMBER(model2_common);
+ model2_state::machine_reset();
// hold TGP in halt until we have code
m_copro_tgp->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
}
-MACHINE_RESET_MEMBER(model2o_state,model2o)
-{
- MACHINE_RESET_CALL_MEMBER(model2_tgp);
-}
-
-MACHINE_RESET_MEMBER(model2a_state,model2a)
+void model2a_state::machine_reset()
{
- MACHINE_RESET_CALL_MEMBER(model2_tgp);
- MACHINE_RESET_CALL_MEMBER(model2_scsp);
+ model2_tgp_state::machine_reset();
+ reset_model2_scsp();
}
-MACHINE_RESET_MEMBER(model2b_state,model2b)
+void model2b_state::machine_reset()
{
- MACHINE_RESET_CALL_MEMBER(model2_common);
- MACHINE_RESET_CALL_MEMBER(model2_scsp);
+ model2_state::machine_reset();
+ reset_model2_scsp();
m_copro_adsp->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
@@ -327,10 +320,10 @@ MACHINE_RESET_MEMBER(model2b_state,model2b)
m_copro_adsp->set_input_line(SHARC_INPUT_FLAG1, CLEAR_LINE);
}
-MACHINE_RESET_MEMBER(model2c_state,model2c)
+void model2c_state::machine_reset()
{
- MACHINE_RESET_CALL_MEMBER(model2_common);
- MACHINE_RESET_CALL_MEMBER(model2_scsp);
+ model2_state::machine_reset();
+ reset_model2_scsp();
m_copro_tgpx4->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
}
@@ -2422,44 +2415,51 @@ WRITE8_MEMBER(model2_state::scsp_irq)
#define VIDEO_CLOCK XTAL(32'000'000)
-MACHINE_CONFIG_START(model2_state::model2_timers)
- MCFG_TIMER_DRIVER_ADD("timer0", model2_state, model2_timer_cb)
- MCFG_TIMER_PTR((uintptr_t)0)
- MCFG_TIMER_DRIVER_ADD("timer1", model2_state, model2_timer_cb)
- MCFG_TIMER_PTR((uintptr_t)1)
- MCFG_TIMER_DRIVER_ADD("timer2", model2_state, model2_timer_cb)
- MCFG_TIMER_PTR((uintptr_t)2)
- MCFG_TIMER_DRIVER_ADD("timer3", model2_state, model2_timer_cb)
- MCFG_TIMER_PTR((uintptr_t)3)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(model2_state::model2_screen)
+void model2_state::model2_timers(machine_config &config)
+{
+ timer_device &timer0(TIMER(config, "timer0"));
+ timer0.configure_generic(FUNC(model2_state::model2_timer_cb));
+ timer0.set_ptr((void *)(uintptr_t)0);
+ timer_device &timer1(TIMER(config, "timer1"));
+ timer1.configure_generic(FUNC(model2_state::model2_timer_cb));
+ timer1.set_ptr((void *)(uintptr_t)1);
+ timer_device &timer2(TIMER(config, "timer2"));
+ timer2.configure_generic(FUNC(model2_state::model2_timer_cb));
+ timer2.set_ptr((void *)(uintptr_t)2);
+ timer_device &timer3(TIMER(config, "timer3"));
+ timer3.configure_generic(FUNC(model2_state::model2_timer_cb));
+ timer3.set_ptr((void *)(uintptr_t)3);
+}
+
+void model2_state::model2_screen(machine_config &config)
+{
S24TILE(config, m_tiles, 0, 0x3fff);
m_tiles->set_palette(m_palette);
m_tiles->xhout_write_callback().set(FUNC(model2_state::horizontal_sync_w));
m_tiles->xvout_write_callback().set(FUNC(model2_state::vertical_sync_w));
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK);
// TODO: from System 24, might not be accurate for Model 2
- MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK/2, 656, 0/*+69*/, 496/*+69*/, 424, 0/*+25*/, 384/*+25*/)
- MCFG_SCREEN_UPDATE_DRIVER(model2_state, screen_update_model2)
+ m_screen->set_raw(VIDEO_CLOCK/2, 656, 0/*+69*/, 496/*+69*/, 424, 0/*+25*/, 384/*+25*/);
+ m_screen->set_screen_update(FUNC(model2_state::screen_update_model2));
- MCFG_PALETTE_ADD("palette", 8192)
-MACHINE_CONFIG_END
+ PALETTE(config, m_palette, 8192);
+}
-MACHINE_CONFIG_START(model2_state::model2_scsp)
- MCFG_DEVICE_ADD("audiocpu", M68000, 12000000)
- MCFG_DEVICE_PROGRAM_MAP(model2_snd)
+void model2_state::model2_scsp(machine_config &config)
+{
+ M68000(config, m_audiocpu, 45158000/4); // SCSP Clock / 2
+ m_audiocpu->set_addrmap(AS_PROGRAM, &model2_state::model2_snd);
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("scsp", SCSP)
- MCFG_DEVICE_ADDRESS_MAP(0, scsp_map)
- MCFG_SCSP_IRQ_CB(WRITE8(*this, model2_state,scsp_irq))
- MCFG_SOUND_ROUTE(0, "lspeaker", 2.0)
- MCFG_SOUND_ROUTE(0, "rspeaker", 2.0)
+ SCSP(config, m_scsp, 45158000/2); // 45.158MHz XTAL at Video board(Model 2A-CRX)
+ m_scsp->set_addrmap(0, &model2_state::scsp_map);
+ m_scsp->irq_cb().set(FUNC(model2_state::scsp_irq));
+ m_scsp->add_route(0, "lspeaker", 1.0);
+ m_scsp->add_route(1, "rspeaker", 1.0);
I8251(config, m_uart, 8000000); // uPD71051C, clock unknown
// m_uart->rxrdy_handler().set(FUNC(model2_state::sound_ready_w));
@@ -2468,19 +2468,21 @@ MACHINE_CONFIG_START(model2_state::model2_scsp)
clock_device &uart_clock(CLOCK(config, "uart_clock", 500000)); // 16 times 31.25MHz (standard Sega/MIDI sound data rate)
uart_clock.signal_handler().set(m_uart, FUNC(i8251_device::write_txc));
uart_clock.signal_handler().append(m_uart, FUNC(i8251_device::write_rxc));
-MACHINE_CONFIG_END
+}
/* original Model 2 */
-MACHINE_CONFIG_START(model2o_state::model2o)
- MCFG_DEVICE_ADD("maincpu", I960, 25000000)
- MCFG_DEVICE_PROGRAM_MAP(model2o_mem)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", model2_state, model2_interrupt, "screen", 0, 1)
+void model2o_state::model2o(machine_config &config)
+{
+ I960(config, m_maincpu, 25000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &model2o_state::model2o_mem);
+
+ TIMER(config, "scantimer").configure_scanline(FUNC(model2_state::model2_interrupt), "screen", 0, 1);
- MCFG_DEVICE_ADD("copro_tgp", MB86234, 16000000)
- MCFG_DEVICE_PROGRAM_MAP(copro_tgp_prog_map)
- MCFG_DEVICE_DATA_MAP(copro_tgp_data_map)
- MCFG_DEVICE_IO_MAP(copro_tgp_io_map)
- MCFG_DEVICE_ADDRESS_MAP(mb86233_device::AS_RF, copro_tgp_rf_map)
+ MB86234(config, m_copro_tgp, 16000000);
+ m_copro_tgp->set_addrmap(AS_PROGRAM, &model2o_state::copro_tgp_prog_map);
+ m_copro_tgp->set_addrmap(AS_DATA, &model2o_state::copro_tgp_data_map);
+ m_copro_tgp->set_addrmap(AS_IO, &model2o_state::copro_tgp_io_map);
+ m_copro_tgp->set_addrmap(mb86233_device::AS_RF, &model2o_state::copro_tgp_rf_map);
ADDRESS_MAP_BANK(config, m_copro_tgp_bank, 0);
m_copro_tgp_bank->set_addrmap(0, &model2o_state::copro_tgp_bank_map);
@@ -2493,9 +2495,6 @@ MACHINE_CONFIG_START(model2o_state::model2o)
GENERIC_FIFO_U32(config, m_copro_fifo_in, 0);
GENERIC_FIFO_U32(config, m_copro_fifo_out, 0);
- MCFG_MACHINE_START_OVERRIDE(model2_tgp_state,model2_tgp)
- MCFG_MACHINE_RESET_OVERRIDE(model2o_state,model2o)
-
NVRAM(config, "backup1", nvram_device::DEFAULT_ALL_1);
model1io_device &ioboard(SEGA_MODEL1IO(config, "ioboard", 0));
@@ -2521,7 +2520,7 @@ MACHINE_CONFIG_START(model2o_state::model2o)
uart_clock.signal_handler().append(m_uart, FUNC(i8251_device::write_rxc));
M2COMM(config, "m2comm", 0);
-MACHINE_CONFIG_END
+}
READ8_MEMBER(model2_state::driveio_portg_r)
{
@@ -2554,11 +2553,12 @@ void model2_state::drive_io_map(address_map &map)
map(0x80, 0x83).rw("driveadc", FUNC(msm6253_device::d0_r), FUNC(msm6253_device::address_w));
}
-MACHINE_CONFIG_START(model2_state::sj25_0207_01)
- MCFG_DEVICE_ADD("drivecpu", Z80, XTAL(8'000'000)/2) // confirmed
- MCFG_DEVICE_PROGRAM_MAP(drive_map)
- MCFG_DEVICE_IO_MAP(drive_io_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", model2_state, irq0_line_hold)
+void model2_state::sj25_0207_01(machine_config &config)
+{
+ Z80(config, m_drivecpu, XTAL(8'000'000)/2); // confirmed
+ m_drivecpu->set_addrmap(AS_PROGRAM, &model2_state::drive_map);
+ m_drivecpu->set_addrmap(AS_IO, &model2_state::drive_io_map);
+ m_drivecpu->set_vblank_int("screen", FUNC(model2_state::irq0_line_hold));
sega_315_5296_device &driveio1(SEGA_315_5296(config, "driveio1", 0)); // unknown clock
driveio1.out_pd_callback().set(FUNC(model2_state::driveio_port_w));
@@ -2568,7 +2568,7 @@ MACHINE_CONFIG_START(model2_state::sj25_0207_01)
SEGA_315_5296(config, "driveio2", 0); // unknown clock
MSM6253(config, "driveadc", 0);
-MACHINE_CONFIG_END
+}
void model2o_state::daytona(machine_config &config)
{
@@ -2583,19 +2583,19 @@ void model2o_state::daytona(machine_config &config)
ioboard.output_callback().set(FUNC(model2o_state::daytona_output_w));
}
-MACHINE_CONFIG_START(model2o_maxx_state::daytona_maxx)
+void model2o_maxx_state::daytona_maxx(machine_config &config)
+{
daytona(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(model2o_maxx_mem)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &model2o_maxx_state::model2o_maxx_mem);
+}
-MACHINE_CONFIG_START(model2o_gtx_state::daytona_gtx)
+void model2o_gtx_state::daytona_gtx(machine_config &config)
+{
daytona(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(model2o_gtx_mem)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &model2o_gtx_state::model2o_gtx_mem);
+}
void model2o_state::desert(machine_config &config)
{
@@ -2608,10 +2608,11 @@ void model2o_state::desert(machine_config &config)
ioboard.output_callback().set(FUNC(model2o_state::desert_output_w));
}
-MACHINE_CONFIG_START(model2o_state::vcop)
+void model2o_state::vcop(machine_config &config)
+{
model2o(config);
- MCFG_DEVICE_REMOVE("ioboard")
+ config.device_remove("ioboard");
#if 0
model1io2_device &ioboard(SEGA_MODEL1IO2(config.replace(), "ioboard", 0));
ioboard.set_default_bios_tag("epr17181");
@@ -2628,19 +2629,20 @@ MACHINE_CONFIG_START(model2o_state::vcop)
config.set_default_layout(layout_model1io2);
#endif
-MACHINE_CONFIG_END
+}
/* 2A-CRX */
-MACHINE_CONFIG_START(model2a_state::model2a)
- MCFG_DEVICE_ADD("maincpu", I960, 25000000)
- MCFG_DEVICE_PROGRAM_MAP(model2a_crx_mem)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", model2_state, model2_interrupt, "screen", 0, 1)
+void model2a_state::model2a(machine_config &config)
+{
+ I960(config, m_maincpu, 25000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &model2a_state::model2a_crx_mem);
+ TIMER(config, "scantimer").configure_scanline(FUNC(model2_state::model2_interrupt), "screen", 0, 1);
- MCFG_DEVICE_ADD("copro_tgp", MB86234, 16000000)
- MCFG_DEVICE_PROGRAM_MAP(copro_tgp_prog_map)
- MCFG_DEVICE_DATA_MAP(copro_tgp_data_map)
- MCFG_DEVICE_IO_MAP(copro_tgp_io_map)
- MCFG_DEVICE_ADDRESS_MAP(mb86233_device::AS_RF, copro_tgp_rf_map)
+ MB86234(config, m_copro_tgp, 16000000);
+ m_copro_tgp->set_addrmap(AS_PROGRAM, &model2a_state::copro_tgp_prog_map);
+ m_copro_tgp->set_addrmap(AS_DATA, &model2a_state::copro_tgp_data_map);
+ m_copro_tgp->set_addrmap(AS_IO, &model2a_state::copro_tgp_io_map);
+ m_copro_tgp->set_addrmap(mb86233_device::AS_RF, &model2a_state::copro_tgp_rf_map);
ADDRESS_MAP_BANK(config, m_copro_tgp_bank, 0);
m_copro_tgp_bank->set_addrmap(0, &model2a_state::copro_tgp_bank_map);
@@ -2653,9 +2655,6 @@ MACHINE_CONFIG_START(model2a_state::model2a)
GENERIC_FIFO_U32(config, m_copro_fifo_in, 0);
GENERIC_FIFO_U32(config, m_copro_fifo_out, 0);
- MCFG_MACHINE_START_OVERRIDE(model2_tgp_state,model2_tgp)
- MCFG_MACHINE_RESET_OVERRIDE(model2a_state,model2a)
-
EEPROM_93C46_16BIT(config, "eeprom");
NVRAM(config, "backup1", nvram_device::DEFAULT_ALL_1);
@@ -2670,7 +2669,7 @@ MACHINE_CONFIG_START(model2a_state::model2a)
model2_scsp(config);
M2COMM(config, "m2comm", 0);
-MACHINE_CONFIG_END
+}
void model2a_state::manxtt(machine_config &config)
{
@@ -2729,27 +2728,25 @@ uint16_t model2_state::crypt_read_callback(uint32_t addr)
return ((dat&0xff00)>>8)|((dat&0x00ff)<<8);
}
-MACHINE_CONFIG_START(model2a_state::model2a_5881)
+void model2a_state::model2a_5881(machine_config &config)
+{
model2a(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(model2a_5881_mem)
-
- MCFG_DEVICE_ADD("315_5881", SEGA315_5881_CRYPT, 0)
- MCFG_SET_READ_CALLBACK(model2_state, crypt_read_callback)
-MACHINE_CONFIG_END
-
+ m_maincpu->set_addrmap(AS_PROGRAM, &model2a_state::model2a_5881_mem);
+ SEGA315_5881_CRYPT(config, m_cryptdevice, 0);
+ m_cryptdevice->set_read_cb(FUNC(model2a_state::crypt_read_callback));
+}
-MACHINE_CONFIG_START(model2a_state::model2a_0229)
+void model2a_state::model2a_0229(machine_config &config)
+{
model2a(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(model2a_0229_mem)
+ m_maincpu->set_addrmap(AS_PROGRAM, &model2a_state::model2a_0229_mem);
- MCFG_DEVICE_ADD("317_0229", SEGA315_5838_COMP, 0)
- MCFG_DEVICE_ADDRESS_MAP(0, sega_0229_map)
-MACHINE_CONFIG_END
+ SEGA315_5838_COMP(config, m_0229crypt, 0);
+ m_0229crypt->set_addrmap(0, &model2a_state::sega_0229_map);
+}
void model2a_state::zeroguna(machine_config &config)
{
@@ -2760,27 +2757,26 @@ void model2a_state::zeroguna(machine_config &config)
}
/* 2B-CRX */
-MACHINE_CONFIG_START(model2b_state::model2b)
- MCFG_DEVICE_ADD("maincpu", I960, 25000000)
- MCFG_DEVICE_PROGRAM_MAP(model2b_crx_mem)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", model2_state, model2_interrupt, "screen", 0, 1)
+void model2b_state::model2b(machine_config &config)
+{
+ I960(config, m_maincpu, 25000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &model2b_state::model2b_crx_mem);
+
+ TIMER(config, "scantimer", 0).configure_scanline(FUNC(model2_state::model2_interrupt), "screen", 0, 1);
- MCFG_DEVICE_ADD("copro_adsp", ADSP21062, 40000000)
- MCFG_SHARC_BOOT_MODE(BOOT_MODE_HOST)
- MCFG_DEVICE_DATA_MAP(copro_sharc_map)
+ ADSP21062(config, m_copro_adsp, 40000000);
+ m_copro_adsp->set_boot_mode(adsp21062_device::BOOT_MODE_HOST);
+ m_copro_adsp->set_addrmap(AS_DATA, &model2b_state::copro_sharc_map);
- //MCFG_DEVICE_ADD("dsp2", ADSP21062, 40000000)
- //MCFG_SHARC_BOOT_MODE(BOOT_MODE_HOST)
- //MCFG_DEVICE_DATA_MAP(geo_sharc_map)
+ //ADSP21062(config, m_dsp2, 40000000);
+ //m_dsp2->set_boot_mode(adsp21062_device::BOOT_MODE_HOST);
+ //m_dsp2->set_addrmap(AS_DATA, &model2b_state::geo_sharc_map);
- MCFG_QUANTUM_TIME(attotime::from_hz(18000))
+ config.m_minimum_quantum = attotime::from_hz(18000);
GENERIC_FIFO_U32(config, m_copro_fifo_in, 0);
GENERIC_FIFO_U32(config, m_copro_fifo_out, 0);
- MCFG_MACHINE_START_OVERRIDE(model2b_state,model2b)
- MCFG_MACHINE_RESET_OVERRIDE(model2b_state,model2b)
-
EEPROM_93C46_16BIT(config, "eeprom");
NVRAM(config, "backup1", nvram_device::DEFAULT_ALL_1);
@@ -2795,27 +2791,27 @@ MACHINE_CONFIG_START(model2b_state::model2b)
model2_scsp(config);
M2COMM(config, "m2comm", 0);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(model2b_state::model2b_5881)
+void model2b_state::model2b_5881(machine_config &config)
+{
model2b(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(model2b_5881_mem)
+ m_maincpu->set_addrmap(AS_PROGRAM, &model2b_state::model2b_5881_mem);
- MCFG_DEVICE_ADD("315_5881", SEGA315_5881_CRYPT, 0)
- MCFG_SET_READ_CALLBACK(model2_state, crypt_read_callback)
-MACHINE_CONFIG_END
+ SEGA315_5881_CRYPT(config, m_cryptdevice, 0);
+ m_cryptdevice->set_read_cb(FUNC(model2b_state::crypt_read_callback));
+}
-MACHINE_CONFIG_START(model2b_state::model2b_0229)
+void model2b_state::model2b_0229(machine_config &config)
+{
model2b(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(model2b_0229_mem)
+ m_maincpu->set_addrmap(AS_PROGRAM, &model2b_state::model2b_0229_mem);
- MCFG_DEVICE_ADD("317_0229", SEGA315_5838_COMP, 0)
- MCFG_DEVICE_ADDRESS_MAP(0, sega_0229_map)
-MACHINE_CONFIG_END
+ SEGA315_5838_COMP(config, m_0229crypt, 0);
+ m_0229crypt->set_addrmap(0, &model2b_state::sega_0229_map);
+}
void model2b_state::indy500(machine_config &config)
{
@@ -2840,12 +2836,13 @@ void model2b_state::rchase2_ioport_map(address_map &map)
map(0x00, 0x07).rw("ioexp", FUNC(cxd1095_device::read), FUNC(cxd1095_device::write));
}
-MACHINE_CONFIG_START( model2b_state::rchase2 )
+void model2b_state::rchase2(machine_config &config)
+{
model2b(config);
- MCFG_DEVICE_ADD("iocpu", Z80, 4000000)
- MCFG_DEVICE_PROGRAM_MAP(rchase2_iocpu_map)
- MCFG_DEVICE_IO_MAP(rchase2_ioport_map)
+ z80_device &iocpu(Z80(config, "iocpu", 4000000));
+ iocpu.set_addrmap(AS_PROGRAM, &model2b_state::rchase2_iocpu_map);
+ iocpu.set_addrmap(AS_IO, &model2b_state::rchase2_ioport_map);
CXD1095(config, "ioexp", 0);
@@ -2856,7 +2853,7 @@ MACHINE_CONFIG_START( model2b_state::rchase2 )
io.an_port_callback<1>().set_ioport("P1_X");
io.an_port_callback<2>().set_ioport("P2_Y");
io.an_port_callback<3>().set_ioport("P1_Y");
-MACHINE_CONFIG_END
+}
void model2b_state::gunblade(machine_config &config)
{
@@ -2887,23 +2884,21 @@ void model2b_state::zerogun(machine_config &config)
}
/* 2C-CRX */
-MACHINE_CONFIG_START(model2c_state::model2c)
- MCFG_DEVICE_ADD("maincpu", I960, 25000000)
- MCFG_DEVICE_PROGRAM_MAP(model2c_crx_mem)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", model2c_state, model2c_interrupt, "screen", 0, 1)
+void model2c_state::model2c(machine_config &config)
+{
+ I960(config, m_maincpu, 25000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &model2c_state::model2c_crx_mem);
+ TIMER(config, "scantimer").configure_scanline(FUNC(model2c_state::model2c_interrupt), "screen", 0, 1);
- MCFG_DEVICE_ADD("copro_tgpx4", MB86235, 40000000)
- MCFG_DEVICE_PROGRAM_MAP(copro_tgpx4_map)
- MCFG_DEVICE_DATA_MAP(copro_tgpx4_data_map)
- MCFG_MB86235_FIFOIN("copro_fifo_in")
- MCFG_MB86235_FIFOOUT0("copro_fifo_out")
+ MB86235(config, m_copro_tgpx4, 40000000);
+ m_copro_tgpx4->set_addrmap(AS_PROGRAM, &model2c_state::copro_tgpx4_map);
+ m_copro_tgpx4->set_addrmap(AS_DATA, &model2c_state::copro_tgpx4_data_map);
+ m_copro_tgpx4->set_fifoin_tag(m_copro_fifo_in);
+ m_copro_tgpx4->set_fifoout0_tag(m_copro_fifo_out);
GENERIC_FIFO_U32(config, m_copro_fifo_in, 0);
GENERIC_FIFO_U32(config, m_copro_fifo_out, 0);
- MCFG_MACHINE_START_OVERRIDE(model2c_state,model2c)
- MCFG_MACHINE_RESET_OVERRIDE(model2c_state,model2c)
-
EEPROM_93C46_16BIT(config, "eeprom");
NVRAM(config, "backup1", nvram_device::DEFAULT_ALL_1);
@@ -2918,7 +2913,7 @@ MACHINE_CONFIG_START(model2c_state::model2c)
model2_scsp(config);
M2COMM(config, "m2comm", 0);
-MACHINE_CONFIG_END
+}
void model2c_state::skisuprg(machine_config &config)
{
@@ -2976,15 +2971,15 @@ void model2c_state::hotd(machine_config &config)
io.serial_ch2_wr_callback().set(FUNC(model2c_state::lightgun_mux_w));
}
-MACHINE_CONFIG_START(model2c_state::model2c_5881)
+void model2c_state::model2c_5881(machine_config &config)
+{
model2c(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(model2c_5881_mem)
+ m_maincpu->set_addrmap(AS_PROGRAM, &model2c_state::model2c_5881_mem);
- MCFG_DEVICE_ADD("315_5881", SEGA315_5881_CRYPT, 0)
- MCFG_SET_READ_CALLBACK(model2_state, crypt_read_callback)
-MACHINE_CONFIG_END
+ SEGA315_5881_CRYPT(config, m_cryptdevice, 0);
+ m_cryptdevice->set_read_cb(FUNC(model2c_state::crypt_read_callback));
+}
void model2c_state::overrev2c(machine_config &config)
{
@@ -6107,7 +6102,7 @@ ROM_START( daytonase ) /* Daytona USA (Japan, Revision A), Original Model 2 w/Mo
ROM_LOAD("epr-16488a.ic12", 0x000000, 0x010000, CRC(546c5d1a) SHA1(5533301fe7e3b499e6cee12230d2c656c3c667da) )
ROM_END
-ROM_START( daytona93 ) /* Daytona USA (Deluxe cabinet, '93 version. There is said to be a Deluxe '94 edition) */
+ROM_START( daytona93 ) /* Daytona USA, Deluxe cabinet, '93 version, ROM board ID# 834-10536-01 - There is said to be a Deluxe '94 edition */
ROM_REGION( 0x200000, "maincpu", 0 ) // i960 program
ROM_LOAD32_WORD("epr-16530a.12", 0x000000, 0x020000, CRC(39e962b5) SHA1(b98a1faabb4f1eff707a94c32224c7820f259874) )
ROM_LOAD32_WORD("epr-16531a.13", 0x000002, 0x020000, CRC(693126eb) SHA1(779734ba536db67e14760d52e8d8d7db07816481) )
diff --git a/docs/release/src/mame/includes/mhavoc.h b/docs/release/src/mame/includes/mhavoc.h
new file mode 100644
index 00000000000..78b5c222efe
--- /dev/null
+++ b/docs/release/src/mame/includes/mhavoc.h
@@ -0,0 +1,102 @@
+// license:BSD-3-Clause
+// copyright-holders:Mike Appolo
+/*************************************************************************
+
+ Atari Major Havoc hardware
+
+*************************************************************************/
+
+#include "machine/timer.h"
+#include "sound/pokey.h"
+#include "sound/tms5220.h"
+
+#define MHAVOC_CLOCK 10000000
+#define MHAVOC_CLOCK_5M (MHAVOC_CLOCK/2)
+#define MHAVOC_CLOCK_2_5M (MHAVOC_CLOCK/4)
+#define MHAVOC_CLOCK_1_25M (MHAVOC_CLOCK/8)
+#define MHAVOC_CLOCK_625K (MHAVOC_CLOCK/16)
+
+#define MHAVOC_CLOCK_156K (MHAVOC_CLOCK_625K/4)
+#define MHAVOC_CLOCK_5K (MHAVOC_CLOCK_625K/16/8)
+#define MHAVOC_CLOCK_2_4K (MHAVOC_CLOCK_625K/16/16)
+
+
+class mhavoc_state : public driver_device
+{
+public:
+ mhavoc_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
+ m_zram0(*this, "zram0"),
+ m_zram1(*this, "zram1"),
+ m_alpha(*this, "alpha"),
+ m_gamma(*this, "gamma"),
+ m_pokey(*this, "pokey%u", 1U),
+ m_tms(*this, "tms"),
+ m_lamps(*this, "lamp%u", 0U)
+ { }
+
+ void alphaone(machine_config &config);
+ void mhavoc(machine_config &config);
+ void mhavocrv(machine_config &config);
+ void mhavocpe(machine_config &config); //HBMAME
+
+ void init_mhavocrv();
+
+ DECLARE_CUSTOM_INPUT_MEMBER(tms5220_r);
+ DECLARE_CUSTOM_INPUT_MEMBER(mhavoc_bit67_r);
+ DECLARE_CUSTOM_INPUT_MEMBER(gamma_rcvd_r);
+ DECLARE_CUSTOM_INPUT_MEMBER(gamma_xmtd_r);
+ DECLARE_CUSTOM_INPUT_MEMBER(alpha_rcvd_r);
+ DECLARE_CUSTOM_INPUT_MEMBER(alpha_xmtd_r);
+ DECLARE_CUSTOM_INPUT_MEMBER(clock_r);
+
+private:
+ DECLARE_READ8_MEMBER(dual_pokey_r);
+ DECLARE_WRITE8_MEMBER(dual_pokey_w);
+ DECLARE_WRITE8_MEMBER(mhavoc_alpha_irq_ack_w);
+ DECLARE_WRITE8_MEMBER(mhavoc_gamma_irq_ack_w);
+ DECLARE_WRITE8_MEMBER(mhavoc_gamma_w);
+ DECLARE_READ8_MEMBER(mhavoc_alpha_r);
+ DECLARE_WRITE8_MEMBER(mhavoc_alpha_w);
+ DECLARE_READ8_MEMBER(mhavoc_gamma_r);
+ DECLARE_WRITE8_MEMBER(mhavoc_ram_banksel_w);
+ DECLARE_WRITE8_MEMBER(mhavoc_rom_banksel_w);
+ DECLARE_WRITE8_MEMBER(mhavoc_out_0_w);
+ DECLARE_WRITE8_MEMBER(alphaone_out_0_w);
+ DECLARE_WRITE8_MEMBER(mhavoc_out_1_w);
+ DECLARE_WRITE8_MEMBER(mhavocrv_speech_data_w);
+ DECLARE_WRITE8_MEMBER(mhavocrv_speech_strobe_w);
+ DECLARE_READ8_MEMBER(quad_pokeyn_r);
+ DECLARE_WRITE8_MEMBER(quad_pokeyn_w);
+
+ TIMER_CALLBACK_MEMBER(delayed_gamma_w);
+ TIMER_DEVICE_CALLBACK_MEMBER(mhavoc_cpu_irq_clock);
+ void alpha_map(address_map &map);
+ void alphaone_map(address_map &map);
+ void gamma_map(address_map &map);
+ void alphape_map(address_map &map); //HBMAME
+ void gammape_map(address_map &map); //HBMAME
+
+ virtual void machine_start() override;
+ virtual void machine_reset() override;
+
+ required_shared_ptr<uint8_t> m_zram0;
+ required_shared_ptr<uint8_t> m_zram1;
+ required_device<cpu_device> m_alpha;
+ optional_device<cpu_device> m_gamma;
+ optional_device_array<pokey_device, 4> m_pokey;
+ optional_device<tms5220_device> m_tms;
+ output_finder<2> m_lamps;
+ uint8_t m_alpha_data;
+ uint8_t m_alpha_rcvd;
+ uint8_t m_alpha_xmtd;
+ uint8_t m_gamma_data;
+ uint8_t m_gamma_rcvd;
+ uint8_t m_gamma_xmtd;
+ uint8_t m_player_1;
+ uint8_t m_alpha_irq_clock;
+ uint8_t m_alpha_irq_clock_enable;
+ uint8_t m_gamma_irq_clock;
+ uint8_t m_has_gamma_cpu;
+ uint8_t m_speech_write_buffer;
+};
diff --git a/docs/release/src/mame/includes/timelimt.h b/docs/release/src/mame/includes/timelimt.h
new file mode 100644
index 00000000000..8f28e7259a8
--- /dev/null
+++ b/docs/release/src/mame/includes/timelimt.h
@@ -0,0 +1,71 @@
+// license:BSD-3-Clause
+// copyright-holders:Ernesto Corvi
+#ifndef MAME_INCLUDES_TIMELIMT_H
+#define MAME_INCLUDES_TIMELIMT_H
+
+#pragma once
+
+#include "emupal.h"
+
+class timelimt_state : public driver_device
+{
+public:
+ timelimt_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_audiocpu(*this, "audiocpu"),
+ m_gfxdecode(*this, "gfxdecode"),
+ m_palette(*this, "palette"),
+ m_videoram(*this, "videoram"),
+ m_bg_videoram(*this, "bg_videoram"),
+ m_spriteram(*this, "spriteram")
+ { }
+
+ void timelimt(machine_config &config);
+
+protected:
+ virtual void machine_start() override;
+ virtual void video_start() override;
+
+//private: //HBMAME
+ required_device<cpu_device> m_maincpu;
+ required_device<cpu_device> m_audiocpu;
+ required_device<gfxdecode_device> m_gfxdecode;
+ required_device<palette_device> m_palette;
+
+ required_shared_ptr<uint8_t> m_videoram;
+ required_shared_ptr<uint8_t> m_bg_videoram;
+ required_shared_ptr<uint8_t> m_spriteram;
+
+ int m_nmi_enabled;
+ int m_scrollx;
+ int m_scrolly;
+ tilemap_t *m_bg_tilemap;
+ tilemap_t *m_fg_tilemap;
+
+ DECLARE_WRITE_LINE_MEMBER(nmi_enable_w);
+ DECLARE_WRITE_LINE_MEMBER(coin_lockout_w);
+
+ DECLARE_WRITE8_MEMBER(videoram_w);
+ DECLARE_WRITE8_MEMBER(bg_videoram_w);
+ DECLARE_WRITE8_MEMBER(scroll_x_lsb_w);
+ DECLARE_WRITE8_MEMBER(scroll_x_msb_w);
+ DECLARE_WRITE8_MEMBER(scroll_y_w);
+
+ TILE_GET_INFO_MEMBER(get_bg_tile_info);
+ TILE_GET_INFO_MEMBER(get_fg_tile_info);
+
+ DECLARE_PALETTE_INIT(timelimt);
+
+ uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
+
+ INTERRUPT_GEN_MEMBER(irq);
+
+ void main_io_map(address_map &map);
+ void main_map(address_map &map);
+ void sound_io_map(address_map &map);
+ void sound_map(address_map &map);
+};
+
+#endif // MAME_INCLUDES_TIMELIMT_H
diff --git a/docs/release/src/mame/machine/mhavoc.cpp b/docs/release/src/mame/machine/mhavoc.cpp
new file mode 100644
index 00000000000..95114fa7a70
--- /dev/null
+++ b/docs/release/src/mame/machine/mhavoc.cpp
@@ -0,0 +1,331 @@
+// license:BSD-3-Clause
+// copyright-holders:Mike Appolo
+/***************************************************************************
+
+ Atari Major Havoc hardware
+
+***************************************************************************/
+
+#include "emu.h"
+#include "cpu/m6502/m6502.h"
+#include "includes/mhavoc.h"
+
+
+/*************************************
+ *
+ * Interrupt handling
+ *
+ *************************************/
+
+TIMER_DEVICE_CALLBACK_MEMBER(mhavoc_state::mhavoc_cpu_irq_clock)
+{
+ /* clock the LS161 driving the alpha CPU IRQ */
+ if (m_alpha_irq_clock_enable)
+ {
+ m_alpha_irq_clock++;
+ if ((m_alpha_irq_clock & 0x0c) == 0x0c)
+ {
+ m_alpha->set_input_line(0, ASSERT_LINE);
+ m_alpha_irq_clock_enable = 0;
+ }
+ }
+
+ /* clock the LS161 driving the gamma CPU IRQ */
+ if (m_has_gamma_cpu)
+ {
+ m_gamma_irq_clock++;
+ m_gamma->set_input_line(0, (m_gamma_irq_clock & 0x08) ? ASSERT_LINE : CLEAR_LINE);
+ }
+}
+
+
+WRITE8_MEMBER(mhavoc_state::mhavoc_alpha_irq_ack_w)
+{
+ /* clear the line and reset the clock */
+ m_alpha->set_input_line(0, CLEAR_LINE);
+ m_alpha_irq_clock = 0;
+ m_alpha_irq_clock_enable = 1;
+}
+
+
+WRITE8_MEMBER(mhavoc_state::mhavoc_gamma_irq_ack_w)
+{
+ /* clear the line and reset the clock */
+ m_gamma->set_input_line(0, CLEAR_LINE);
+ m_gamma_irq_clock = 0;
+}
+
+
+
+/*************************************
+ *
+ * Machine init
+ *
+ *************************************/
+
+void mhavoc_state::machine_start()
+{
+ m_lamps.resolve();
+
+ save_item(NAME(m_alpha_data));
+ save_item(NAME(m_alpha_rcvd));
+ save_item(NAME(m_alpha_xmtd));
+ save_item(NAME(m_gamma_data));
+ save_item(NAME(m_gamma_rcvd));
+ save_item(NAME(m_gamma_xmtd));
+ save_item(NAME(m_player_1));
+ save_item(NAME(m_alpha_irq_clock));
+ save_item(NAME(m_alpha_irq_clock_enable));
+ save_item(NAME(m_gamma_irq_clock));
+
+ save_item(NAME(m_speech_write_buffer));
+}
+
+
+void mhavoc_state::machine_reset()
+{
+ address_space &space = m_alpha->space(AS_PROGRAM);
+ m_has_gamma_cpu = (m_gamma != nullptr);
+
+ membank("bank1")->configure_entry(0, m_zram0);
+ membank("bank1")->configure_entry(1, m_zram1);
+ membank("bank2")->configure_entries(0, 8, memregion("alpha")->base() + 0x10000, 0x2000);
+
+ /* reset RAM/ROM banks to 0 */
+ mhavoc_ram_banksel_w(space, 0, 0);
+ mhavoc_rom_banksel_w(space, 0, 0);
+
+ /* reset alpha comm status */
+ m_alpha_data = 0;
+ m_alpha_rcvd = 0;
+ m_alpha_xmtd = 0;
+
+ /* reset gamma comm status */
+ m_gamma_data = 0;
+ m_gamma_rcvd = 0;
+ m_gamma_xmtd = 0;
+
+ /* reset player 1 flag */
+ m_player_1 = 0;
+
+ /* reset IRQ clock states */
+ m_alpha_irq_clock = 0;
+ m_alpha_irq_clock_enable = 1;
+ m_gamma_irq_clock = 0;
+}
+
+
+
+/*************************************
+ *
+ * Alpha -> gamma communications
+ *
+ *************************************/
+
+TIMER_CALLBACK_MEMBER(mhavoc_state::delayed_gamma_w)
+{
+ /* mark the data received */
+ m_gamma_rcvd = 0;
+ m_alpha_xmtd = 1;
+ m_alpha_data = param;
+
+ /* signal with an NMI pulse */
+ m_gamma->pulse_input_line(INPUT_LINE_NMI, attotime::zero);
+
+ /* the sound CPU needs to reply in 250microseconds (according to Neil Bradley) */
+ machine().scheduler().timer_set(attotime::from_usec(250), timer_expired_delegate());
+}
+
+
+WRITE8_MEMBER(mhavoc_state::mhavoc_gamma_w)
+{
+ //logerror(" writing to gamma processor: %02x (%d %d)\n", data, m_gamma_rcvd, m_alpha_xmtd);
+ machine().scheduler().synchronize(timer_expired_delegate(FUNC(mhavoc_state::delayed_gamma_w),this), data);
+}
+
+
+READ8_MEMBER(mhavoc_state::mhavoc_alpha_r)
+{
+ //logerror("\t\t\t\t\treading from alpha processor: %02x (%d %d)\n", m_alpha_data, m_gamma_rcvd, m_alpha_xmtd);
+ m_gamma_rcvd = 1;
+ m_alpha_xmtd = 0;
+ return m_alpha_data;
+}
+
+
+
+/*************************************
+ *
+ * Gamma -> alpha communications
+ *
+ *************************************/
+
+WRITE8_MEMBER(mhavoc_state::mhavoc_alpha_w)
+{
+ //logerror("\t\t\t\t\twriting to alpha processor: %02x %d %d\n", data, m_alpha_rcvd, m_gamma_xmtd);
+ m_alpha_rcvd = 0;
+ m_gamma_xmtd = 1;
+ m_gamma_data = data;
+}
+
+
+READ8_MEMBER(mhavoc_state::mhavoc_gamma_r)
+{
+ //logerror(" reading from gamma processor: %02x (%d %d)\n", m_gamma_data, m_alpha_rcvd, m_gamma_xmtd);
+ m_alpha_rcvd = 1;
+ m_gamma_xmtd = 0;
+ return m_gamma_data;
+}
+
+
+
+/*************************************
+ *
+ * RAM/ROM banking
+ *
+ *************************************/
+
+WRITE8_MEMBER(mhavoc_state::mhavoc_ram_banksel_w)
+{
+ membank("bank1")->set_entry(data & 1);
+}
+
+
+WRITE8_MEMBER(mhavoc_state::mhavoc_rom_banksel_w)
+{
+ membank("bank2")->set_entry(data & 3);
+}
+
+
+
+/*************************************
+ *
+ * Input ports
+ *
+ *************************************/
+
+CUSTOM_INPUT_MEMBER(mhavoc_state::tms5220_r)
+{
+ return m_tms->readyq_r() ? 1 : 0;
+}
+
+CUSTOM_INPUT_MEMBER(mhavoc_state::mhavoc_bit67_r)
+{
+ const char *tag1 = (const char *)param;
+ const char *tag2 = tag1 + strlen(tag1) + 1;
+ return ioport(m_player_1 ? tag2 : tag1)->read() & 0x03;
+}
+
+CUSTOM_INPUT_MEMBER(mhavoc_state::gamma_rcvd_r)
+{
+ /* Gamma rcvd flag */
+ return m_gamma_rcvd;
+}
+
+CUSTOM_INPUT_MEMBER(mhavoc_state::gamma_xmtd_r)
+{
+ /* Gamma xmtd flag */
+ return m_gamma_xmtd;
+}
+
+CUSTOM_INPUT_MEMBER(mhavoc_state::alpha_rcvd_r)
+{
+ /* Alpha rcvd flag */
+ return (m_has_gamma_cpu && m_alpha_rcvd);
+}
+
+CUSTOM_INPUT_MEMBER(mhavoc_state::alpha_xmtd_r)
+{
+ /* Alpha xmtd flag */
+ return (m_has_gamma_cpu && m_alpha_xmtd);
+}
+
+/*************************************
+ *
+ * Output ports
+ *
+ *************************************/
+
+WRITE8_MEMBER(mhavoc_state::mhavoc_out_0_w)
+{
+ /* Bit 7 = Invert Y -- unemulated */
+ /* Bit 6 = Invert X -- unemulated */
+
+ /* Bit 5 = Player 1 */
+ m_player_1 = (data >> 5) & 1;
+
+ /* Bit 3 = Gamma reset */
+ m_gamma->set_input_line(INPUT_LINE_RESET, (data & 0x08) ? CLEAR_LINE : ASSERT_LINE);
+ if (!(data & 0x08))
+ {
+ //logerror("\t\t\t\t*** resetting gamma processor. ***\n");
+ m_alpha_rcvd = 0;
+ m_alpha_xmtd = 0;
+ m_gamma_rcvd = 0;
+ m_gamma_xmtd = 0;
+ }
+
+ /* Bit 2 = Beta reset */
+ /* this is the unpopulated processor in the corner of the pcb farthest from the quad pokey, not used on shipping boards */
+
+ /* Bit 0 = Roller light (Blinks on fatal errors) */
+ m_lamps[0] = BIT(data, 0);
+}
+
+
+WRITE8_MEMBER(mhavoc_state::alphaone_out_0_w)
+{
+ /* Bit 5 = P2 lamp */
+ m_lamps[0] = BIT(~data, 5);
+
+ /* Bit 4 = P1 lamp */
+ m_lamps[1] = BIT(~data, 4);
+
+ /* Bit 1 = right coin counter */
+ machine().bookkeeping().coin_counter_w(1, data & 0x02);
+
+ /* Bit 0 = left coin counter */
+ machine().bookkeeping().coin_counter_w(0, data & 0x01);
+
+ //logerror("alphaone_out_0_w(%02X)\n", data);
+}
+
+
+WRITE8_MEMBER(mhavoc_state::mhavoc_out_1_w)
+{
+ /* Bit 1 = left coin counter */
+ machine().bookkeeping().coin_counter_w(0, data & 0x02);
+
+ /* Bit 0 = right coin counter */
+ machine().bookkeeping().coin_counter_w(1, data & 0x01);
+}
+
+/*************************************
+ *
+ * Speech access
+ *
+ *************************************/
+
+WRITE8_MEMBER(mhavoc_state::mhavocrv_speech_data_w)
+{
+ m_speech_write_buffer = data;
+}
+
+
+WRITE8_MEMBER(mhavoc_state::mhavocrv_speech_strobe_w)
+{
+ m_tms->data_w(m_speech_write_buffer);
+}
+
+/*************************************
+ *
+ * Driver-specific init
+ *
+ *************************************/
+
+void mhavoc_state::init_mhavocrv()
+{
+ // For Return to Vax, add support for the normally-unused speech module.
+ m_gamma->space(AS_PROGRAM).install_write_handler(0x5800, 0x5800, write8_delegate(FUNC(mhavoc_state::mhavocrv_speech_data_w),this));
+ m_gamma->space(AS_PROGRAM).install_write_handler(0x5900, 0x5900, write8_delegate(FUNC(mhavoc_state::mhavocrv_speech_strobe_w),this));
+}
diff --git a/docs/release/src/osd/windows/winmain.cpp b/docs/release/src/osd/windows/winmain.cpp
index 4fa252cd456..738bc341c8d 100644
--- a/docs/release/src/osd/windows/winmain.cpp
+++ b/docs/release/src/osd/windows/winmain.cpp
@@ -170,10 +170,10 @@ const options_entry windows_options::s_option_entries[] =
// post-processing options
{ nullptr, nullptr, OPTION_HEADER, "DIRECT3D POST-PROCESSING OPTIONS" },
- { WINOPTION_HLSLPATH, "hlsl", OPTION_STRING, "path to hlsl files" },
- { WINOPTION_HLSL_ENABLE";hlsl", "0", OPTION_BOOLEAN, "enables HLSL post-processing (PS3.0 required)" },
- { WINOPTION_HLSL_OVERSAMPLING, "0", OPTION_BOOLEAN, "enables HLSL oversampling" },
- { WINOPTION_HLSL_WRITE, OSDOPTVAL_AUTO, OPTION_STRING, "enables HLSL AVI writing (huge disk bandwidth suggested)" },
+ { WINOPTION_HLSLPATH, "hlsl", OPTION_STRING, "path to HLSL support files" },
+ { WINOPTION_HLSL_ENABLE";hlsl", "0", OPTION_BOOLEAN, "enable HLSL post-processing (PS3.0 required)" },
+ { WINOPTION_HLSL_OVERSAMPLING, "0", OPTION_BOOLEAN, "enable HLSL oversampling" },
+ { WINOPTION_HLSL_WRITE, OSDOPTVAL_AUTO, OPTION_STRING, "enable HLSL AVI writing (huge disk bandwidth suggested)" },
{ WINOPTION_HLSL_SNAP_WIDTH, "2048", OPTION_STRING, "HLSL upscaled-snapshot width" },
{ WINOPTION_HLSL_SNAP_HEIGHT, "1536", OPTION_STRING, "HLSL upscaled-snapshot height" },
{ WINOPTION_SHADOW_MASK_TILE_MODE, "0", OPTION_INTEGER, "shadow mask tile mode (0 for screen based, 1 for source based)" },
@@ -216,62 +216,62 @@ const options_entry windows_options::s_option_entries[] =
{ WINOPTION_POWER";fs_power", "1.0,1.0,1.0", OPTION_STRING, "signal power value (exponential)" },
{ WINOPTION_FLOOR";fs_floor", "0.0,0.0,0.0", OPTION_STRING, "signal floor level" },
{ WINOPTION_PHOSPHOR";fs_phosphor", "0.0,0.0,0.0", OPTION_STRING, "phosphorescence decay rate (0.0 is instant, 1.0 is forever)" },
- { WINOPTION_CHROMA_MODE, "3", OPTION_INTEGER, "Number of phosphors to use: 1 - monochrome, 2 - dichrome, 3 - trichrome (color)" },
- { WINOPTION_CHROMA_CONVERSION_GAIN, "0.299,0.587,0.114", OPTION_STRING, "Gain to be applied when summing RGB signal for monochrome and dichrome modes" },
- { WINOPTION_CHROMA_A, "0.64,0.33", OPTION_STRING, "Chromaticity coordinate for first phosphor" },
- { WINOPTION_CHROMA_B, "0.30,0.60", OPTION_STRING, "Chromaticity coordinate for second phosphor" },
- { WINOPTION_CHROMA_C, "0.15,0.06", OPTION_STRING, "Chromaticity coordinate for third phosphor" },
- { WINOPTION_CHROMA_Y_GAIN, "0.2126,0.7152,0.0722", OPTION_STRING, "Gain to be applied for each phosphor" },
+ { WINOPTION_CHROMA_MODE, "3", OPTION_INTEGER, "number of phosphors to use: 1 - monochrome, 2 - dichrome, 3 - trichrome (color)" },
+ { WINOPTION_CHROMA_CONVERSION_GAIN, "0.299,0.587,0.114", OPTION_STRING, "gain to be applied when summing RGB signal for monochrome and dichrome modes" },
+ { WINOPTION_CHROMA_A, "0.64,0.33", OPTION_STRING, "chromaticity coordinate for first phosphor" },
+ { WINOPTION_CHROMA_B, "0.30,0.60", OPTION_STRING, "chromaticity coordinate for second phosphor" },
+ { WINOPTION_CHROMA_C, "0.15,0.06", OPTION_STRING, "chromaticity coordinate for third phosphor" },
+ { WINOPTION_CHROMA_Y_GAIN, "0.2126,0.7152,0.0722", OPTION_STRING, "gain to be applied for each phosphor" },
/* NTSC simulation below this line */
{ nullptr, nullptr, OPTION_HEADER, "NTSC POST-PROCESSING OPTIONS" },
- { WINOPTION_YIQ_ENABLE";yiq", "0", OPTION_BOOLEAN, "enables YIQ-space HLSL post-processing" },
- { WINOPTION_YIQ_JITTER";yiqj", "0.0", OPTION_FLOAT, "Jitter for the NTSC signal processing" },
- { WINOPTION_YIQ_CCVALUE";yiqcc", "3.57954545", OPTION_FLOAT, "Color Carrier frequency for NTSC signal processing" },
+ { WINOPTION_YIQ_ENABLE";yiq", "0", OPTION_BOOLEAN, "enable YIQ-space HLSL post-processing" },
+ { WINOPTION_YIQ_JITTER";yiqj", "0.0", OPTION_FLOAT, "jitter for the NTSC signal processing" },
+ { WINOPTION_YIQ_CCVALUE";yiqcc", "3.57954545", OPTION_FLOAT, "color carrier frequency for NTSC signal processing" },
{ WINOPTION_YIQ_AVALUE";yiqa", "0.5", OPTION_FLOAT, "A value for NTSC signal processing" },
{ WINOPTION_YIQ_BVALUE";yiqb", "0.5", OPTION_FLOAT, "B value for NTSC signal processing" },
- { WINOPTION_YIQ_OVALUE";yiqo", "0.0", OPTION_FLOAT, "Outgoing Color Carrier phase offset for NTSC signal processing" },
- { WINOPTION_YIQ_PVALUE";yiqp", "1.0", OPTION_FLOAT, "Incoming Pixel Clock scaling value for NTSC signal processing" },
+ { WINOPTION_YIQ_OVALUE";yiqo", "0.0", OPTION_FLOAT, "outgoing Color Carrier phase offset for NTSC signal processing" },
+ { WINOPTION_YIQ_PVALUE";yiqp", "1.0", OPTION_FLOAT, "incoming Pixel Clock scaling value for NTSC signal processing" },
{ WINOPTION_YIQ_NVALUE";yiqn", "1.0", OPTION_FLOAT, "Y filter notch width for NTSC signal processing" },
{ WINOPTION_YIQ_YVALUE";yiqy", "6.0", OPTION_FLOAT, "Y filter cutoff frequency for NTSC signal processing" },
{ WINOPTION_YIQ_IVALUE";yiqi", "1.2", OPTION_FLOAT, "I filter cutoff frequency for NTSC signal processing" },
{ WINOPTION_YIQ_QVALUE";yiqq", "0.6", OPTION_FLOAT, "Q filter cutoff frequency for NTSC signal processing" },
- { WINOPTION_YIQ_SCAN_TIME";yiqsc", "52.6", OPTION_FLOAT, "Horizontal scanline duration for NTSC signal processing (in usec)" },
- { WINOPTION_YIQ_PHASE_COUNT";yiqpc", "2", OPTION_INTEGER, "Phase Count value for NTSC signal processing" },
+ { WINOPTION_YIQ_SCAN_TIME";yiqsc", "52.6", OPTION_FLOAT, "horizontal scanline duration for NTSC signal processing (microseconds)" },
+ { WINOPTION_YIQ_PHASE_COUNT";yiqpc", "2", OPTION_INTEGER, "phase count value for NTSC signal processing" },
/* Vector simulation below this line */
{ nullptr, nullptr, OPTION_HEADER, "VECTOR POST-PROCESSING OPTIONS" },
- { WINOPTION_VECTOR_BEAM_SMOOTH";vecsmooth", "0.0", OPTION_FLOAT, "The vector beam smoothness" },
- { WINOPTION_VECTOR_LENGTH_SCALE";vecscale", "0.5", OPTION_FLOAT, "The maximum vector attenuation" },
- { WINOPTION_VECTOR_LENGTH_RATIO";vecratio", "0.5", OPTION_FLOAT, "The minimum vector length (vector length to screen size ratio) that is affected by the attenuation" },
+ { WINOPTION_VECTOR_BEAM_SMOOTH";vecsmooth", "0.0", OPTION_FLOAT, "vector beam smoothness" },
+ { WINOPTION_VECTOR_LENGTH_SCALE";vecscale", "0.5", OPTION_FLOAT, "maximum vector attenuation" },
+ { WINOPTION_VECTOR_LENGTH_RATIO";vecratio", "0.5", OPTION_FLOAT, "minimum vector length affected by attenuation (vector length to screen size ratio)" },
/* Bloom below this line */
{ nullptr, nullptr, OPTION_HEADER, "BLOOM POST-PROCESSING OPTIONS" },
{ WINOPTION_BLOOM_BLEND_MODE, "0", OPTION_INTEGER, "bloom blend mode (0 for brighten, 1 for darken)" },
- { WINOPTION_BLOOM_SCALE, "0.0", OPTION_FLOAT, "Intensity factor for bloom" },
- { WINOPTION_BLOOM_OVERDRIVE, "1.0,1.0,1.0", OPTION_STRING, "Overdrive factor for bloom" },
- { WINOPTION_BLOOM_LEVEL0_WEIGHT, "1.0", OPTION_FLOAT, "Bloom level 0 weight (full-size target)" },
- { WINOPTION_BLOOM_LEVEL1_WEIGHT, "0.64", OPTION_FLOAT, "Bloom level 1 weight (1/4 smaller that level 0 target)" },
- { WINOPTION_BLOOM_LEVEL2_WEIGHT, "0.32", OPTION_FLOAT, "Bloom level 2 weight (1/4 smaller that level 1 target)" },
- { WINOPTION_BLOOM_LEVEL3_WEIGHT, "0.16", OPTION_FLOAT, "Bloom level 3 weight (1/4 smaller that level 2 target)" },
- { WINOPTION_BLOOM_LEVEL4_WEIGHT, "0.08", OPTION_FLOAT, "Bloom level 4 weight (1/4 smaller that level 3 target)" },
- { WINOPTION_BLOOM_LEVEL5_WEIGHT, "0.06", OPTION_FLOAT, "Bloom level 5 weight (1/4 smaller that level 4 target)" },
- { WINOPTION_BLOOM_LEVEL6_WEIGHT, "0.04", OPTION_FLOAT, "Bloom level 6 weight (1/4 smaller that level 5 target)" },
- { WINOPTION_BLOOM_LEVEL7_WEIGHT, "0.02", OPTION_FLOAT, "Bloom level 7 weight (1/4 smaller that level 6 target)" },
- { WINOPTION_BLOOM_LEVEL8_WEIGHT, "0.01", OPTION_FLOAT, "Bloom level 8 weight (1/4 smaller that level 7 target)" },
+ { WINOPTION_BLOOM_SCALE, "0.0", OPTION_FLOAT, "intensity factor for bloom" },
+ { WINOPTION_BLOOM_OVERDRIVE, "1.0,1.0,1.0", OPTION_STRING, "overdrive factor for bloom" },
+ { WINOPTION_BLOOM_LEVEL0_WEIGHT, "1.0", OPTION_FLOAT, "bloom level 0 weight (full-size target)" },
+ { WINOPTION_BLOOM_LEVEL1_WEIGHT, "0.64", OPTION_FLOAT, "bloom level 1 weight (1/4 smaller that level 0 target)" },
+ { WINOPTION_BLOOM_LEVEL2_WEIGHT, "0.32", OPTION_FLOAT, "bloom level 2 weight (1/4 smaller that level 1 target)" },
+ { WINOPTION_BLOOM_LEVEL3_WEIGHT, "0.16", OPTION_FLOAT, "bloom level 3 weight (1/4 smaller that level 2 target)" },
+ { WINOPTION_BLOOM_LEVEL4_WEIGHT, "0.08", OPTION_FLOAT, "bloom level 4 weight (1/4 smaller that level 3 target)" },
+ { WINOPTION_BLOOM_LEVEL5_WEIGHT, "0.06", OPTION_FLOAT, "bloom level 5 weight (1/4 smaller that level 4 target)" },
+ { WINOPTION_BLOOM_LEVEL6_WEIGHT, "0.04", OPTION_FLOAT, "bloom level 6 weight (1/4 smaller that level 5 target)" },
+ { WINOPTION_BLOOM_LEVEL7_WEIGHT, "0.02", OPTION_FLOAT, "bloom level 7 weight (1/4 smaller that level 6 target)" },
+ { WINOPTION_BLOOM_LEVEL8_WEIGHT, "0.01", OPTION_FLOAT, "bloom level 8 weight (1/4 smaller that level 7 target)" },
{ WINOPTION_LUT_TEXTURE, "", OPTION_STRING, "3D LUT texture filename for screen, PNG format" },
{ WINOPTION_LUT_ENABLE, "0", OPTION_BOOLEAN, "Enables 3D LUT to be applied to screen after post-processing" },
{ WINOPTION_UI_LUT_TEXTURE, "", OPTION_STRING, "3D LUT texture filename of UI, PNG format" },
- { WINOPTION_UI_LUT_ENABLE, "0", OPTION_BOOLEAN, "Enables 3D LUT to be applied to UI and artwork after post-processing" },
+ { WINOPTION_UI_LUT_ENABLE, "0", OPTION_BOOLEAN, "enable 3D LUT to be applied to UI and artwork after post-processing" },
// full screen options
{ nullptr, nullptr, OPTION_HEADER, "FULL SCREEN OPTIONS" },
- { WINOPTION_TRIPLEBUFFER ";tb", "0", OPTION_BOOLEAN, "enables triple buffering" },
+ { WINOPTION_TRIPLEBUFFER ";tb", "0", OPTION_BOOLEAN, "enable triple buffering" },
{ WINOPTION_FULLSCREENBRIGHTNESS ";fsb(0.1-2.0)", "1.0", OPTION_FLOAT, "brightness value in full screen mode" },
{ WINOPTION_FULLSCREENCONTRAST ";fsc(0.1-2.0)", "1.0", OPTION_FLOAT, "contrast value in full screen mode" },
{ WINOPTION_FULLSCREENGAMMA ";fsg(0.1-3.0)", "1.0", OPTION_FLOAT, "gamma value in full screen mode" },
// input options
{ nullptr, nullptr, OPTION_HEADER, "INPUT DEVICE OPTIONS" },
- { WINOPTION_GLOBAL_INPUTS, "0", OPTION_BOOLEAN, "enables global inputs" },
- { WINOPTION_DUAL_LIGHTGUN ";dual", "0", OPTION_BOOLEAN, "enables dual lightgun input" },
+ { WINOPTION_GLOBAL_INPUTS, "0", OPTION_BOOLEAN, "enable global inputs" },
+ { WINOPTION_DUAL_LIGHTGUN ";dual", "0", OPTION_BOOLEAN, "enable dual lightgun input" },
{ nullptr }
};
diff --git a/docs/release/src/version.cpp b/docs/release/src/version.cpp
index 561bc0d8e1a..30e7722eeeb 100644
--- a/docs/release/src/version.cpp
+++ b/docs/release/src/version.cpp
@@ -8,7 +8,7 @@
***************************************************************************/
-#define BARE_BUILD_VERSION "0.204"
+#define BARE_BUILD_VERSION "0.205"
extern const char bare_build_version[];
extern const char build_version[];
diff --git a/makefile b/makefile
index 11b5a3a27b1..573ebbba22e 100644
--- a/makefile
+++ b/makefile
@@ -1608,14 +1608,14 @@ endif
ifeq (posix,$(SHELLTYPE))
$(GENDIR)/version.cpp: $(GENDIR)/git_desc | $(GEN_FOLDERS)
- @echo '#define BARE_BUILD_VERSION "0.204"' > $@
+ @echo '#define BARE_BUILD_VERSION "0.205"' > $@
@echo 'extern const char bare_build_version[];' >> $@
@echo 'extern const char build_version[];' >> $@
@echo 'const char bare_build_version[] = BARE_BUILD_VERSION;' >> $@
@echo 'const char build_version[] = BARE_BUILD_VERSION " ($(NEW_GIT_VERSION))";' >> $@
else
$(GENDIR)/version.cpp: $(GENDIR)/git_desc
- @echo #define BARE_BUILD_VERSION "0.204" > $@
+ @echo #define BARE_BUILD_VERSION "0.205" > $@
@echo extern const char bare_build_version[]; >> $@
@echo extern const char build_version[]; >> $@
@echo const char bare_build_version[] = BARE_BUILD_VERSION; >> $@
diff --git a/src/version.cpp b/src/version.cpp
index 561bc0d8e1a..30e7722eeeb 100644
--- a/src/version.cpp
+++ b/src/version.cpp
@@ -8,7 +8,7 @@
***************************************************************************/
-#define BARE_BUILD_VERSION "0.204"
+#define BARE_BUILD_VERSION "0.205"
extern const char bare_build_version[];
extern const char build_version[];