summaryrefslogtreecommitdiffstats
path: root/docs/release
diff options
context:
space:
mode:
author Robbbert <Robbbert@users.noreply.github.com>2019-11-27 10:29:17 +1100
committer Robbbert <Robbbert@users.noreply.github.com>2019-11-27 10:29:17 +1100
commit9a69fc85f3088ea8900b0c7f6488dbf60b199f8e (patch)
tree427f139707eff088046f74e3915dc301e8091c6d /docs/release
parent3a6be1140d695b71f13d365ee6481bbed6efe687 (diff)
0.216 Release filestag216
Diffstat (limited to 'docs/release')
-rw-r--r--docs/release/build/buildall.bat70
-rw-r--r--docs/release/build/make.bat27
-rw-r--r--docs/release/build/makee.bat12
-rw-r--r--docs/release/build/maker.bat15
-rw-r--r--docs/release/build/newsrc.bat15
-rw-r--r--docs/release/build/release.bat6
-rw-r--r--docs/release/build/uprel.bat2
-rw-r--r--docs/release/build/v.bat1
-rw-r--r--docs/release/hbmame216s.rar (renamed from docs/release/hbmame215s.rar)bin3713641 -> 3704583 bytes
-rw-r--r--docs/release/scripts/build/complay.py4
-rw-r--r--docs/release/scripts/genie.lua14
-rw-r--r--docs/release/scripts/src/bus.lua126
-rw-r--r--docs/release/scripts/src/cpu.lua43
-rw-r--r--docs/release/scripts/src/emu.lua2
-rw-r--r--docs/release/scripts/src/machine.lua12
-rw-r--r--docs/release/scripts/src/mame/frontend.lua102
-rw-r--r--docs/release/scripts/src/netlist.lua12
-rw-r--r--docs/release/scripts/src/sound.lua2
-rw-r--r--docs/release/scripts/target/hbmame/hbmame.lua2
-rw-r--r--docs/release/scripts/target/mame/arcade.lua24
-rw-r--r--docs/release/scripts/target/mame/mess.lua50
-rw-r--r--docs/release/src/devices/cpu/m68000/m68kcpu.cpp160
-rw-r--r--docs/release/src/emu/emuopts.cpp8
-rw-r--r--docs/release/src/emu/emuopts.h2
-rw-r--r--docs/release/src/emu/validity.cpp4
-rw-r--r--docs/release/src/emu/video.cpp10
-rw-r--r--docs/release/src/emu/video.h1
-rw-r--r--docs/release/src/frontend/mame/info.cpp2027
-rw-r--r--docs/release/src/frontend/mame/language.cpp185
-rw-r--r--docs/release/src/hbmame/bus/neogeo/banked_cart.cpp2
-rw-r--r--docs/release/src/hbmame/bus/neogeo/prot.cpp68
-rw-r--r--docs/release/src/hbmame/bus/neogeo_ctrl/ctrl.cpp21
-rw-r--r--docs/release/src/hbmame/bus/neogeo_ctrl/ctrl.h19
-rw-r--r--docs/release/src/hbmame/bus/neogeo_ctrl/dial.cpp4
-rw-r--r--docs/release/src/hbmame/bus/neogeo_ctrl/dial.h4
-rw-r--r--docs/release/src/hbmame/bus/neogeo_ctrl/irrmaze.cpp4
-rw-r--r--docs/release/src/hbmame/bus/neogeo_ctrl/irrmaze.h4
-rw-r--r--docs/release/src/hbmame/bus/neogeo_ctrl/joystick.cpp4
-rw-r--r--docs/release/src/hbmame/bus/neogeo_ctrl/joystick.h4
-rw-r--r--docs/release/src/hbmame/bus/neogeo_ctrl/kizuna4p.cpp4
-rw-r--r--docs/release/src/hbmame/bus/neogeo_ctrl/kizuna4p.h4
-rw-r--r--docs/release/src/hbmame/drivers/cinemat.cpp2
-rw-r--r--docs/release/src/hbmame/drivers/cps1.cpp24
-rw-r--r--docs/release/src/hbmame/drivers/cps1mis.cpp279
-rw-r--r--docs/release/src/hbmame/drivers/cps2.cpp6
-rw-r--r--docs/release/src/hbmame/drivers/cps2mis.cpp38
-rw-r--r--docs/release/src/hbmame/drivers/fcrash.cpp12
-rw-r--r--docs/release/src/hbmame/drivers/kof2002.cpp27
-rw-r--r--docs/release/src/hbmame/drivers/maketrax.cpp6
-rw-r--r--docs/release/src/hbmame/drivers/mhavoc.cpp2
-rw-r--r--docs/release/src/hbmame/drivers/mslug5.cpp244
-rw-r--r--docs/release/src/hbmame/drivers/neogeo.cpp24
-rw-r--r--docs/release/src/hbmame/drivers/neogeohb.cpp1
-rw-r--r--docs/release/src/hbmame/drivers/ngkofmisc.cpp4
-rw-r--r--docs/release/src/hbmame/drivers/pgm.cpp28
-rw-r--r--docs/release/src/hbmame/drivers/segaorun.cpp8
-rw-r--r--docs/release/src/hbmame/drivers/tempest.cpp2
-rw-r--r--docs/release/src/hbmame/drivers/timelimit.cpp2
-rw-r--r--docs/release/src/hbmame/hbmame.lst14
-rw-r--r--docs/release/src/hbmame/machine/ng_memcard.h16
-rw-r--r--docs/release/src/hbmame/video/cps1.cpp6
-rw-r--r--docs/release/src/hbmame/video/cps2.cpp6
-rw-r--r--docs/release/src/hbmame/video/pacman.cpp4
-rw-r--r--docs/release/src/mame/drivers/konamigx.cpp24
-rw-r--r--docs/release/src/mame/drivers/model2.cpp160
-rw-r--r--docs/release/src/mame/machine/mhavoc.cpp4
-rw-r--r--docs/release/src/mame/video/decbac06.cpp24
-rw-r--r--docs/release/src/osd/windows/winmain.h3
-rw-r--r--docs/release/src/osd/winui/hbmameui.rc1
-rw-r--r--docs/release/src/osd/winui/properties.cpp1
-rw-r--r--docs/release/src/osd/winui/resource.h1
-rw-r--r--docs/release/src/version.cpp2
72 files changed, 1443 insertions, 2612 deletions
diff --git a/docs/release/build/buildall.bat b/docs/release/build/buildall.bat
new file mode 100644
index 00000000000..9963356977a
--- /dev/null
+++ b/docs/release/build/buildall.bat
@@ -0,0 +1,70 @@
+@echo off
+cls
+echo.
+echo Pre-compile steps
+echo.
+echo 1. HBMAME - CLEAN, update MAKEFILE, update VERSION.CPP
+echo.
+echo 2. ARCADE - CLEAN, update MAKEFILE, update WINUI.H
+echo.
+echo 3. MESSUI - CLEAN, update MAKEFILE, update VERSION.CPP
+echo.
+echo 4. MAMEUI - CLEAN, update MAKEFILE, update VERSION.CPP
+echo.
+echo 5. When this is all done, then
+pause
+
+
+c:
+
+:hbmame
+cd\hbmame
+call newsrc.bat
+
+rem --- HBMAME 64bit ---
+del hbmameui64.exe
+del hbmameui64.sym
+call make64 -j4 "OSD=winui" %1 %2 %3
+if not exist hbmameui64.exe goto end
+del hbmame64.exe
+del hbmame64.sym
+call make64 -j4 %1 %2 %3
+if not exist hbmame64.exe goto end
+
+:arcade
+cd\arcade
+call newsrc.bat
+
+rem --- ARCADE 64bit ---
+del arcade64.exe
+del arcade64.sym
+call make64 -j4 %1 %2 %3
+if not exist arcade64.exe goto end
+
+:messui
+cd\mess
+call newsrc.bat
+
+rem --- MESSUI 64bit ---
+del messui64.exe
+del messui64.sym
+call make64 -j4 "OSD=messui" %1 %2 %3
+if not exist messui64.exe goto end
+del mess64.exe
+del mess64.sym
+call make64 -j4 "OSD=newui" %1 %2 %3
+if not exist mess64.exe goto end
+
+:mameui
+cd\mameui
+call newsrc.bat
+
+rem --- MAMEUI 64bit ---
+del mameui64.exe
+del mameui64.sym
+call make64 -j4 %1 %2 %3
+if not exist mameui64.exe goto end
+
+:end
+
+
diff --git a/docs/release/build/make.bat b/docs/release/build/make.bat
index e9fbe910b82..069a26d7f8f 100644
--- a/docs/release/build/make.bat
+++ b/docs/release/build/make.bat
@@ -1,16 +1,19 @@
-//goto start0
@if exist scripts\minimaws\minimaws.sqlite3 del scripts\minimaws\minimaws.sqlite3
-@del hbmameui.sym
+@del hbmameui64.sym
:start
-del hbmameui.exe
-if exist hbmameui.exe goto start
-call make32 -j4 "OSD=winui" %1 %2 %3
-if not exist hbmameui.exe goto end
-:start0
-del hbmame.sym
+del hbmameui64.exe
+if exist hbmameui64.exe goto start
+call make64 -j4 "OSD=winui" %1 %2 %3
+if not exist hbmameui64.exe goto end
+@copy /Y hbmameui64.exe hbmameui.exe
+@copy /Y hbmameui64.sym hbmameui.sym
+@del hbmame64.sym
:start1
-del hbmame.exe
-if exist hbmame.exe goto start1
-call make32 -j4 %1 %2 %3
+del hbmame64.exe
+if exist hbmame64.exe goto start1
+call make64 -j4 %1 %2 %3
+if not exist hbmame64.exe goto end
+@copy /Y hbmame64.exe hbmame.exe
+@copy /Y hbmame64.sym hbmame.sym
+hbmame64 -valid
:end
-hbmame -valid
diff --git a/docs/release/build/makee.bat b/docs/release/build/makee.bat
index 02f5c89d2d2..9a1f861760d 100644
--- a/docs/release/build/makee.bat
+++ b/docs/release/build/makee.bat
@@ -1,8 +1,8 @@
-@del hbmameui.sym
+@del hbmameui64.sym
:start
-del hbmameui.exe
-if exist hbmameui.exe goto start
-call make32 -j4 "OSD=winui" %1 %2 %3
-if not exist hbmameui.exe goto end
+del hbmameui64.exe
+if exist hbmameui64.exe goto start
+call make64 -j4 "OSD=winui" %1 %2 %3
+if not exist hbmameui64.exe goto end
+copy /Y hbmameui64.exe hbmameui.exe
:end
-
diff --git a/docs/release/build/maker.bat b/docs/release/build/maker.bat
index 7798646f8d8..fd9727a5742 100644
--- a/docs/release/build/maker.bat
+++ b/docs/release/build/maker.bat
@@ -1,9 +1,10 @@
-//goto start0
-@if exist scripts\minimaws\minimaws.sqlite3 del scripts\minimaws\minimaws.sqlite3
-del hbmame.sym
+del hbmame64.sym
:start1
-del hbmame.exe
-if exist hbmame.exe goto start1
-call make32 -j4 %1 %2 %3
+del hbmame64.exe
+if exist hbmame64.exe goto start1
+call make64 -j4 %1 %2 %3
+if not exist hbmame64.exe goto end
+@copy /Y hbmame64.exe hbmame.exe
+@copy /Y hbmame64.sym hbmame.sym
+hbmame64 -valid
:end
-hbmame -valid
diff --git a/docs/release/build/newsrc.bat b/docs/release/build/newsrc.bat
index 64a6ffa3c51..648523501d1 100644
--- a/docs/release/build/newsrc.bat
+++ b/docs/release/build/newsrc.bat
@@ -14,9 +14,10 @@ copy /Y %from%\src\emu\video.* %to%\src\emu
copy /Y %from%\src\version.cpp %to%\src
md %to%\src\frontend\mame
-copy /Y %from%\src\frontend\mame\audit.* %to%\src\frontend\mame
-copy /Y %from%\src\frontend\mame\info.cpp %to%\src\frontend\mame
-copy /Y %from%\src\frontend\mame\mameopts.* %to%\src\frontend\mame
+copy /Y %from%\src\frontend\mame\audit.* %to%\src\frontend\mame
+copy /Y %from%\src\frontend\mame\language.cpp %to%\src\frontend\mame
+copy /Y %from%\src\frontend\mame\info.cpp %to%\src\frontend\mame
+copy /Y %from%\src\frontend\mame\mameopts.* %to%\src\frontend\mame
md %to%\src\devices\cpu\m68000
copy /Y %from%\src\devices\cpu\m68000\m68kcpu.cpp %to%\src\devices\cpu\m68000
@@ -61,11 +62,3 @@ type %from%\docs\BSD3Clause.txt | MORE /P > %to%\docs\BSD3Clause.txt
type %from%\docs\LICENSE | MORE /P > %to%\docs\license.txt
type %from%\docs\winui_license.txt | MORE /P > %to%\docs\winui_license.txt
-pause
-echo off
-cls
-echo.
-echo RAR up everything.
-echo.
-
-pause
diff --git a/docs/release/build/release.bat b/docs/release/build/release.bat
index 438a9dd6e6e..0e6205f6ffc 100644
--- a/docs/release/build/release.bat
+++ b/docs/release/build/release.bat
@@ -8,18 +8,24 @@ call clean.bat
call clean.bat
call clean.bat
call clean.bat
+goto 64bit
rem --- 32bit ---
del hbmameui.exe
+del hbmameui.sym
call make32 -j4 "OSD=winui" %1 %2 %3
if not exist hbmameui.exe goto end
del hbmame.exe
+del hbmame.sym
call make32 -j4 %1 %2 %3
+:64bit
rem --- 64bit ---
del hbmameui64.exe
+del hbmameui64.sym
call make64 -j4 "OSD=winui" %1 %2 %3
if not exist hbmameui64.exe goto end
del hbmame64.exe
+del hbmame64.sym
call make64 -j4 %1 %2 %3
:end
diff --git a/docs/release/build/uprel.bat b/docs/release/build/uprel.bat
index 3a4fc162e8a..d99689605fe 100644
--- a/docs/release/build/uprel.bat
+++ b/docs/release/build/uprel.bat
@@ -1,6 +1,6 @@
\goto end
git fetch upstream
-git merge upstream/release0215
+git merge upstream/release0216
git checkout master
:end
pause
diff --git a/docs/release/build/v.bat b/docs/release/build/v.bat
new file mode 100644
index 00000000000..49542a59333
--- /dev/null
+++ b/docs/release/build/v.bat
@@ -0,0 +1 @@
+hbmame64 -valid
diff --git a/docs/release/hbmame215s.rar b/docs/release/hbmame216s.rar
index 5dc443849b7..8222c8ba6f2 100644
--- a/docs/release/hbmame215s.rar
+++ b/docs/release/hbmame216s.rar
Binary files differ
diff --git a/docs/release/scripts/build/complay.py b/docs/release/scripts/build/complay.py
index 72bdcfa01c8..ce760185015 100644
--- a/docs/release/scripts/build/complay.py
+++ b/docs/release/scripts/build/complay.py
@@ -649,14 +649,14 @@ if __name__ == '__main__':
varname = base
varname = 'layout_' + re.sub('[^0-9A-Za-z_]', '_', varname)
- comp_type = 1
+ comp_type = 'internal_layout::compression::ZLIB'
try:
dst = open(dstfile,'w') if dstfile is not None else BlackHole()
dst.write('static const unsigned char %s_data[] = {\n' % (varname))
byte_count, comp_size = compressLayout(srcfile, lambda x: dst.write(x), zlib.compressobj())
dst.write('};\n\n')
dst.write('const internal_layout %s = {\n' % (varname))
- dst.write('\t%d, sizeof(%s_data), %d, %s_data\n' % (byte_count, varname, comp_type, varname))
+ dst.write('\t%d, sizeof(%s_data), %s, %s_data\n' % (byte_count, varname, comp_type, varname))
dst.write('};\n')
dst.close()
except XmlError:
diff --git a/docs/release/scripts/genie.lua b/docs/release/scripts/genie.lua
index b29e02f9d90..6aa28173b1d 100644
--- a/docs/release/scripts/genie.lua
+++ b/docs/release/scripts/genie.lua
@@ -93,16 +93,10 @@ end
function addprojectflags()
local version = str_to_version(_OPTIONS["gcc_version"])
if _OPTIONS["gcc"]~=nil and string.find(_OPTIONS["gcc"], "gcc") then
- if version >= 50100 then
- buildoptions_cpp {
- "-Wsuggest-override",
- }
- end
- if version >= 60000 then
- buildoptions_cpp {
- "-flifetime-dse=1",
- }
- end
+ buildoptions_cpp {
+ "-Wsuggest-override",
+ "-flifetime-dse=1",
+ }
end
end
diff --git a/docs/release/scripts/src/bus.lua b/docs/release/scripts/src/bus.lua
index 37514196b6b..fc1c26ac01f 100644
--- a/docs/release/scripts/src/bus.lua
+++ b/docs/release/scripts/src/bus.lua
@@ -360,6 +360,72 @@ end
---------------------------------------------------
--
+--@src/devices/bus/bbc/cart/slot.h,BUSES["BBC_CART"] = true
+---------------------------------------------------
+
+if (BUSES["BBC_CART"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/bbc/cart/slot.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/cart/slot.h",
+ MAME_DIR .. "src/devices/bus/bbc/cart/click.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/cart/click.h",
+ MAME_DIR .. "src/devices/bus/bbc/cart/mega256.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/cart/mega256.h",
+ MAME_DIR .. "src/devices/bus/bbc/cart/mr8000.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/cart/mr8000.h",
+ MAME_DIR .. "src/devices/bus/bbc/cart/msc.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/cart/msc.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/bbc/internal/internal.h,BUSES["BBC_INTERNAL"] = true
+---------------------------------------------------
+
+if (BUSES["BBC_INTERNAL"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/bbc/internal/internal.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/internal/internal.h",
+ MAME_DIR .. "src/devices/bus/bbc/internal/aries.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/internal/aries.h",
+ MAME_DIR .. "src/devices/bus/bbc/internal/atpl.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/internal/atpl.h",
+ MAME_DIR .. "src/devices/bus/bbc/internal/cumana68k.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/internal/cumana68k.h",
+ MAME_DIR .. "src/devices/bus/bbc/internal/integrab.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/internal/integrab.h",
+ MAME_DIR .. "src/devices/bus/bbc/internal/morleyaa.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/internal/morleyaa.h",
+ MAME_DIR .. "src/devices/bus/bbc/internal/overlay.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/internal/overlay.h",
+ MAME_DIR .. "src/devices/bus/bbc/internal/peartree.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/internal/peartree.h",
+ MAME_DIR .. "src/devices/bus/bbc/internal/ramamp.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/internal/ramamp.h",
+ MAME_DIR .. "src/devices/bus/bbc/internal/raven20.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/internal/raven20.h",
+ MAME_DIR .. "src/devices/bus/bbc/internal/romex.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/internal/romex.h",
+ MAME_DIR .. "src/devices/bus/bbc/internal/stlswr.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/internal/stlswr.h",
+ MAME_DIR .. "src/devices/bus/bbc/internal/stl2m128.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/internal/stl2m128.h",
+ MAME_DIR .. "src/devices/bus/bbc/internal/stl4m32.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/internal/stl4m32.h",
+ MAME_DIR .. "src/devices/bus/bbc/internal/werom.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/internal/werom.h",
+ MAME_DIR .. "src/devices/bus/bbc/internal/weromram.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/internal/weromram.h",
+ MAME_DIR .. "src/devices/bus/bbc/internal/we32kram.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/internal/we32kram.h",
+ }
+end
+
+
+---------------------------------------------------
+--
--@src/devices/bus/bbc/exp/exp.h,BUSES["BBC_EXP"] = true
---------------------------------------------------
@@ -367,6 +433,8 @@ if (BUSES["BBC_EXP"]~=null) then
files {
MAME_DIR .. "src/devices/bus/bbc/exp/exp.cpp",
MAME_DIR .. "src/devices/bus/bbc/exp/exp.h",
+ MAME_DIR .. "src/devices/bus/bbc/exp/autocue.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/exp/autocue.h",
MAME_DIR .. "src/devices/bus/bbc/exp/mertec.cpp",
MAME_DIR .. "src/devices/bus/bbc/exp/mertec.h",
}
@@ -409,6 +477,10 @@ if (BUSES["BBC_1MHZBUS"]~=null) then
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/pms64k.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/1mhzbus/pms64k.h",
+ MAME_DIR .. "src/devices/bus/bbc/1mhzbus/ramdisc.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/1mhzbus/ramdisc.h",
MAME_DIR .. "src/devices/bus/bbc/1mhzbus/sprite.cpp",
MAME_DIR .. "src/devices/bus/bbc/1mhzbus/sprite.h",
MAME_DIR .. "src/devices/bus/bbc/1mhzbus/cfa3000opt.cpp",
@@ -430,6 +502,8 @@ if (BUSES["BBC_ROM"]~=null) then
MAME_DIR .. "src/devices/bus/bbc/rom/rom.h",
MAME_DIR .. "src/devices/bus/bbc/rom/ram.cpp",
MAME_DIR .. "src/devices/bus/bbc/rom/ram.h",
+ MAME_DIR .. "src/devices/bus/bbc/rom/nvram.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/rom/nvram.h",
MAME_DIR .. "src/devices/bus/bbc/rom/dfs.cpp",
MAME_DIR .. "src/devices/bus/bbc/rom/dfs.h",
MAME_DIR .. "src/devices/bus/bbc/rom/genie.cpp",
@@ -488,6 +562,8 @@ if (BUSES["BBC_USERPORT"]~=null) then
MAME_DIR .. "src/devices/bus/bbc/userport/pointer.h",
MAME_DIR .. "src/devices/bus/bbc/userport/usersplit.cpp",
MAME_DIR .. "src/devices/bus/bbc/userport/usersplit.h",
+ MAME_DIR .. "src/devices/bus/bbc/userport/voicebox.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/userport/voicebox.h",
MAME_DIR .. "src/devices/bus/bbc/userport/cfa3000kbd.cpp",
MAME_DIR .. "src/devices/bus/bbc/userport/cfa3000kbd.h",
}
@@ -920,6 +996,8 @@ if (BUSES["ELECTRON"]~=null) then
MAME_DIR .. "src/devices/bus/electron/rombox.h",
MAME_DIR .. "src/devices/bus/electron/romboxp.cpp",
MAME_DIR .. "src/devices/bus/electron/romboxp.h",
+ MAME_DIR .. "src/devices/bus/electron/sidewndr.cpp",
+ MAME_DIR .. "src/devices/bus/electron/sidewndr.h",
MAME_DIR .. "src/devices/bus/electron/m2105.cpp",
MAME_DIR .. "src/devices/bus/electron/m2105.h",
}
@@ -1383,6 +1461,10 @@ if (BUSES["ISA"]~=null) then
MAME_DIR .. "src/devices/bus/isa/myb3k_fdc.h",
MAME_DIR .. "src/devices/bus/isa/eis_sad8852.cpp",
MAME_DIR .. "src/devices/bus/isa/eis_sad8852.h",
+ MAME_DIR .. "src/devices/bus/isa/eis_twib.cpp",
+ MAME_DIR .. "src/devices/bus/isa/eis_twib.h",
+ MAME_DIR .. "src/devices/bus/isa/eis_hgb107x.cpp",
+ MAME_DIR .. "src/devices/bus/isa/eis_hgb107x.h",
MAME_DIR .. "src/devices/bus/isa/lbaenhancer.cpp",
MAME_DIR .. "src/devices/bus/isa/lbaenhancer.h",
MAME_DIR .. "src/devices/bus/isa/np600.cpp",
@@ -2228,6 +2310,8 @@ if (BUSES["NSCSI"]~=null) then
MAME_DIR .. "src/devices/bus/nscsi/hd.h",
MAME_DIR .. "src/devices/bus/nscsi/s1410.cpp",
MAME_DIR .. "src/devices/bus/nscsi/s1410.h",
+ MAME_DIR .. "src/devices/bus/nscsi/smoc501.cpp",
+ MAME_DIR .. "src/devices/bus/nscsi/smoc501.h",
}
end
@@ -2351,6 +2435,8 @@ if (BUSES["RS232"]~=null) then
MAME_DIR .. "src/devices/bus/rs232/xvd701.h",
MAME_DIR .. "src/devices/bus/rs232/ie15.cpp",
MAME_DIR .. "src/devices/bus/rs232/ie15.h",
+ MAME_DIR .. "src/devices/bus/rs232/swtpc8212.cpp",
+ MAME_DIR .. "src/devices/bus/rs232/swtpc8212.h",
}
end
@@ -3094,6 +3180,8 @@ if (BUSES["BML3"]~=null) then
MAME_DIR .. "src/devices/bus/bml3/bml3mp1805.h",
MAME_DIR .. "src/devices/bus/bml3/bml3kanji.cpp",
MAME_DIR .. "src/devices/bus/bml3/bml3kanji.h",
+ MAME_DIR .. "src/devices/bus/bml3/bml3rtc.cpp",
+ MAME_DIR .. "src/devices/bus/bml3/bml3rtc.h",
}
end
@@ -3527,6 +3615,8 @@ if (BUSES["SPECTRUM"]~=null) then
MAME_DIR .. "src/devices/bus/spectrum/melodik.h",
MAME_DIR .. "src/devices/bus/spectrum/mface.cpp",
MAME_DIR .. "src/devices/bus/spectrum/mface.h",
+ MAME_DIR .. "src/devices/bus/spectrum/mgt.cpp",
+ MAME_DIR .. "src/devices/bus/spectrum/mgt.h",
MAME_DIR .. "src/devices/bus/spectrum/mikroplus.cpp",
MAME_DIR .. "src/devices/bus/spectrum/mikroplus.h",
MAME_DIR .. "src/devices/bus/spectrum/opus.cpp",
@@ -3800,30 +3890,6 @@ end
---------------------------------------------------
--
---@src/devices/bus/hp_optroms/hp_optrom.h,BUSES["HP_OPTROM"] = true
----------------------------------------------------
-
-if (BUSES["HP_OPTROM"]~=null) then
- files {
- MAME_DIR .. "src/devices/bus/hp_optroms/hp_optrom.cpp",
- MAME_DIR .. "src/devices/bus/hp_optroms/hp_optrom.h",
- }
-end
-
----------------------------------------------------
---
---@src/devices/bus/hp80_optroms/hp80_optrom.h,BUSES["HP80_OPTROM"] = true
----------------------------------------------------
-
-if (BUSES["HP80_OPTROM"]~=null) then
- files {
- MAME_DIR .. "src/devices/bus/hp80_optroms/hp80_optrom.cpp",
- MAME_DIR .. "src/devices/bus/hp80_optroms/hp80_optrom.h",
- }
-end
-
----------------------------------------------------
---
--@src/devices/bus/hp80_io/hp80_io.h,BUSES["HP80_IO"] = true
---------------------------------------------------
@@ -3838,18 +3904,6 @@ end
---------------------------------------------------
--
---@src/devices/bus/hp_optroms/hp_optrom.h,BUSES["HP_OPTROM"] = true
----------------------------------------------------
-
-if (BUSES["HP9825_OPTROM"]~=null) then
- files {
- MAME_DIR .. "src/devices/bus/hp9825_optroms/hp9825_optrom.cpp",
- MAME_DIR .. "src/devices/bus/hp9825_optroms/hp9825_optrom.h",
- }
-end
-
----------------------------------------------------
---
--@src/devices/bus/hp9845_io/hp9845_io.h,BUSES["HP9845_IO"] = true
---------------------------------------------------
diff --git a/docs/release/scripts/src/cpu.lua b/docs/release/scripts/src/cpu.lua
index ceb6fb6f27f..f6f5c41a113 100644
--- a/docs/release/scripts/src/cpu.lua
+++ b/docs/release/scripts/src/cpu.lua
@@ -1434,6 +1434,9 @@ end
--@src/devices/cpu/m6502/m740.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/m3745x.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/m5074x.h,CPUS["M6502"] = true
+--@src/devices/cpu/m6502/st2xxx.h,CPUS["M6502"] = true
+--@src/devices/cpu/m6502/st2204.h,CPUS["M6502"] = true
+--@src/devices/cpu/m6502/st2205u.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/xavix.h,CPUS["XAVIX"] = true
--@src/devices/cpu/m6502/xavix.h,CPUS["XAVIX2000"] = true
@@ -1479,6 +1482,12 @@ if (CPUS["M6502"]~=null) then
MAME_DIR .. "src/devices/cpu/m6502/m3745x.h",
MAME_DIR .. "src/devices/cpu/m6502/m5074x.cpp",
MAME_DIR .. "src/devices/cpu/m6502/m5074x.h",
+ MAME_DIR .. "src/devices/cpu/m6502/st2xxx.cpp",
+ MAME_DIR .. "src/devices/cpu/m6502/st2xxx.h",
+ MAME_DIR .. "src/devices/cpu/m6502/st2204.cpp",
+ MAME_DIR .. "src/devices/cpu/m6502/st2204.h",
+ MAME_DIR .. "src/devices/cpu/m6502/st2205u.cpp",
+ MAME_DIR .. "src/devices/cpu/m6502/st2205u.h",
MAME_DIR .. "src/devices/cpu/m6502/xavix.cpp",
MAME_DIR .. "src/devices/cpu/m6502/xavix.h",
MAME_DIR .. "src/devices/cpu/m6502/xavix2000.cpp",
@@ -1496,6 +1505,7 @@ if (CPUS["M6502"]~=null) then
{ MAME_DIR .. "src/devices/cpu/m6502/on2a03.lst", GEN_DIR .. "emu/cpu/m6502/n2a03.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dn2a03.lst" }, {"@echo Generating n2a03 disassembler source file...", PYTHON .. " $(1) s n2a03 $(<) $(2) $(@)" }},
{ MAME_DIR .. "src/devices/cpu/m6502/om740.lst" , GEN_DIR .. "emu/cpu/m6502/m740.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dm740.lst" }, {"@echo Generating m740 disassembler source file...", PYTHON .. " $(1) s m740 $(<) $(2) $(@)" }},
{ MAME_DIR .. "src/devices/cpu/m6502/dr65c02.lst", GEN_DIR .. "emu/cpu/m6502/r65c02.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", }, {"@echo Generating r65c02 disassembler source file...", PYTHON .. " $(1) s r65c02 - $(<) $(@)" }},
+ { MAME_DIR .. "src/devices/cpu/m6502/ost2xxx.lst" , GEN_DIR .. "emu/cpu/m6502/st2xxx.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dst2xxx.lst" }, {"@echo Generating st2xxx disassembler source file...", PYTHON .. " $(1) s st2xxx $(<) $(2) $(@)" }},
{ MAME_DIR .. "src/devices/cpu/m6502/oxavix.lst", GEN_DIR .. "emu/cpu/m6502/xavix.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dxavix.lst" }, {"@echo Generating xavix disassembler source file...", PYTHON .. " $(1) s xavix $(<) $(2) $(@)" }},
{ MAME_DIR .. "src/devices/cpu/m6502/oxavix2000.lst", GEN_DIR .. "emu/cpu/m6502/xavix2000.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dxavix2000.lst" }, {"@echo Generating xavix2000 disassembler source file...", PYTHON .. " $(1) s xavix2000 $(<) $(2) $(@)" }},
}
@@ -1511,6 +1521,7 @@ if (CPUS["M6502"]~=null) then
{ MAME_DIR .. "src/devices/cpu/m6502/n2a03.cpp", GEN_DIR .. "emu/cpu/m6502/n2a03.hxx" },
{ MAME_DIR .. "src/devices/cpu/m6502/r65c02.cpp", GEN_DIR .. "emu/cpu/m6502/r65c02.hxx" },
{ MAME_DIR .. "src/devices/cpu/m6502/m740.cpp", GEN_DIR .. "emu/cpu/m6502/m740.hxx" },
+ { MAME_DIR .. "src/devices/cpu/m6502/st2xxx.cpp", GEN_DIR .. "emu/cpu/m6502/st2xxx.hxx" },
{ MAME_DIR .. "src/devices/cpu/m6502/xavix.cpp", GEN_DIR .. "emu/cpu/m6502/xavix.hxx" },
{ MAME_DIR .. "src/devices/cpu/m6502/xavix2000.cpp", GEN_DIR .. "emu/cpu/m6502/xavix2000.hxx" },
}
@@ -2031,8 +2042,8 @@ if (CPUS["SATURN"]~=null) then
files {
MAME_DIR .. "src/devices/cpu/saturn/saturn.cpp",
MAME_DIR .. "src/devices/cpu/saturn/saturn.h",
- MAME_DIR .. "src/devices/cpu/saturn/satops.hxx",
- MAME_DIR .. "src/devices/cpu/saturn/sattable.hxx",
+ MAME_DIR .. "src/devices/cpu/saturn/satops.ipp",
+ MAME_DIR .. "src/devices/cpu/saturn/sattable.ipp",
}
end
@@ -2761,21 +2772,20 @@ if (CPUS["ALTO2"]~=null or _OPTIONS["with-tools"]) then
end
------------------------------------------
--- Sun SPARC, Fujitus MB86901 implementation
---@src/devices/cpu/sparc/sparc.h,CPUS["MB86901"] = true
+-- Sun SPARCv7, SPARCv8 implementation
+--@src/devices/cpu/sparc/sparc.h,CPUS["SPARC"] = true
--------------------------------------------------
-if (CPUS["MB86901"]~=null) then
+if (CPUS["SPARC"]~=null) then
files {
- MAME_DIR .. "src/devices/cpu/sparc/mb86901.cpp",
- MAME_DIR .. "src/devices/cpu/sparc/sparcv8ops.ipp",
+ MAME_DIR .. "src/devices/cpu/sparc/sparc.cpp",
MAME_DIR .. "src/devices/cpu/sparc/sparcdefs.h",
MAME_DIR .. "src/devices/cpu/sparc/sparc_intf.h",
MAME_DIR .. "src/devices/cpu/sparc/sparc.h",
}
end
-if (CPUS["MB86901"]~=null or _OPTIONS["with-tools"]) then
+if (CPUS["SPARC"]~=null or _OPTIONS["with-tools"]) then
table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/sparc/sparcdasm.cpp")
table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/sparc/sparcdasm.h")
end
@@ -2961,3 +2971,20 @@ if (CPUS["CR16B"]~=null or _OPTIONS["with-tools"]) then
table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/cr16b/cr16bdasm.cpp")
table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/cr16b/cr16bdasm.h")
end
+
+--------------------------------------------------
+-- Motorola DSP56000
+--@src/devices/cpu/dsp56000/dsp56000.h,CPUS["DSP56000"] = true
+--------------------------------------------------
+
+if (CPUS["DSP56000"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/dsp56000/dsp56000.cpp",
+ MAME_DIR .. "src/devices/cpu/dsp56000/dsp56000.h",
+ }
+end
+
+if (CPUS["DSP56000"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/dsp56000/dsp56000d.cpp")
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/dsp56000/dsp56000d.h")
+end
diff --git a/docs/release/scripts/src/emu.lua b/docs/release/scripts/src/emu.lua
index 197e4181258..1561bb1b691 100644
--- a/docs/release/scripts/src/emu.lua
+++ b/docs/release/scripts/src/emu.lua
@@ -159,7 +159,7 @@ files {
MAME_DIR .. "src/emu/inputdev.h",
MAME_DIR .. "src/emu/ioport.cpp",
MAME_DIR .. "src/emu/ioport.h",
- MAME_DIR .. "src/emu/inpttype.h",
+ MAME_DIR .. "src/emu/inpttype.ipp",
MAME_DIR .. "src/emu/logmacro.h",
MAME_DIR .. "src/emu/machine.cpp",
MAME_DIR .. "src/emu/machine.h",
diff --git a/docs/release/scripts/src/machine.lua b/docs/release/scripts/src/machine.lua
index 126ee953ad9..e3d07a9d23f 100644
--- a/docs/release/scripts/src/machine.lua
+++ b/docs/release/scripts/src/machine.lua
@@ -2813,6 +2813,18 @@ end
---------------------------------------------------
--
+--@src/devices/machine/swtpc8212.h,MACHINES["SWTPC8212"] = true
+---------------------------------------------------
+
+if (MACHINES["SWTPC8212"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/swtpc8212.cpp",
+ MAME_DIR .. "src/devices/machine/swtpc8212.h",
+ }
+end
+
+---------------------------------------------------
+--
--
---------------------------------------------------
diff --git a/docs/release/scripts/src/mame/frontend.lua b/docs/release/scripts/src/mame/frontend.lua
index b785785416e..826b004df4a 100644
--- a/docs/release/scripts/src/mame/frontend.lua
+++ b/docs/release/scripts/src/mame/frontend.lua
@@ -63,8 +63,10 @@ files {
MAME_DIR .. "src/frontend/mame/cheat.h",
MAME_DIR .. "src/frontend/mame/clifront.cpp",
MAME_DIR .. "src/frontend/mame/clifront.h",
- MAME_DIR .. "src/frontend/mame/info.cpp",
- MAME_DIR .. "src/frontend/mame/info.h",
+ MAME_DIR .. "src/frontend/mame/infoxml.cpp",
+ MAME_DIR .. "src/frontend/mame/infoxml.h",
+ MAME_DIR .. "src/frontend/mame/iptseqpoll.cpp",
+ MAME_DIR .. "src/frontend/mame/iptseqpoll.h",
MAME_DIR .. "src/frontend/mame/language.cpp",
MAME_DIR .. "src/frontend/mame/language.h",
MAME_DIR .. "src/frontend/mame/luaengine.cpp",
@@ -77,92 +79,96 @@ files {
MAME_DIR .. "src/frontend/mame/media_ident.h",
MAME_DIR .. "src/frontend/mame/pluginopts.cpp",
MAME_DIR .. "src/frontend/mame/pluginopts.h",
- MAME_DIR .. "src/frontend/mame/ui/ui.cpp",
- MAME_DIR .. "src/frontend/mame/ui/ui.h",
- MAME_DIR .. "src/frontend/mame/ui/text.cpp",
- MAME_DIR .. "src/frontend/mame/ui/text.h",
- MAME_DIR .. "src/frontend/mame/ui/devctrl.h",
- MAME_DIR .. "src/frontend/mame/ui/menu.cpp",
- MAME_DIR .. "src/frontend/mame/ui/menu.h",
- MAME_DIR .. "src/frontend/mame/ui/submenu.cpp",
- MAME_DIR .. "src/frontend/mame/ui/submenu.h",
- MAME_DIR .. "src/frontend/mame/ui/mainmenu.cpp",
- MAME_DIR .. "src/frontend/mame/ui/mainmenu.h",
- MAME_DIR .. "src/frontend/mame/ui/miscmenu.cpp",
- MAME_DIR .. "src/frontend/mame/ui/miscmenu.h",
+ MAME_DIR .. "src/frontend/mame/ui/analogipt.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/analogipt.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/auditmenu.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/auditmenu.h",
MAME_DIR .. "src/frontend/mame/ui/barcode.cpp",
MAME_DIR .. "src/frontend/mame/ui/barcode.h",
MAME_DIR .. "src/frontend/mame/ui/cheatopt.cpp",
MAME_DIR .. "src/frontend/mame/ui/cheatopt.h",
- MAME_DIR .. "src/frontend/mame/ui/pluginopt.cpp",
- MAME_DIR .. "src/frontend/mame/ui/pluginopt.h",
+ MAME_DIR .. "src/frontend/mame/ui/confswitch.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/confswitch.h",
+ MAME_DIR .. "src/frontend/mame/ui/custui.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/custui.h",
+ MAME_DIR .. "src/frontend/mame/ui/datmenu.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/datmenu.h",
+ MAME_DIR .. "src/frontend/mame/ui/defimg.ipp",
+ MAME_DIR .. "src/frontend/mame/ui/devctrl.h",
MAME_DIR .. "src/frontend/mame/ui/devopt.cpp",
MAME_DIR .. "src/frontend/mame/ui/devopt.h",
+ MAME_DIR .. "src/frontend/mame/ui/dirmenu.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/dirmenu.h",
+ MAME_DIR .. "src/frontend/mame/ui/filecreate.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/filecreate.h",
MAME_DIR .. "src/frontend/mame/ui/filemngr.cpp",
MAME_DIR .. "src/frontend/mame/ui/filemngr.h",
MAME_DIR .. "src/frontend/mame/ui/filesel.cpp",
MAME_DIR .. "src/frontend/mame/ui/filesel.h",
- MAME_DIR .. "src/frontend/mame/ui/filecreate.cpp",
- MAME_DIR .. "src/frontend/mame/ui/filecreate.h",
MAME_DIR .. "src/frontend/mame/ui/floppycntrl.cpp",
MAME_DIR .. "src/frontend/mame/ui/floppycntrl.h",
+ MAME_DIR .. "src/frontend/mame/ui/icorender.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/icorender.h",
MAME_DIR .. "src/frontend/mame/ui/imgcntrl.cpp",
MAME_DIR .. "src/frontend/mame/ui/imgcntrl.h",
MAME_DIR .. "src/frontend/mame/ui/info.cpp",
MAME_DIR .. "src/frontend/mame/ui/info.h",
MAME_DIR .. "src/frontend/mame/ui/info_pty.cpp",
MAME_DIR .. "src/frontend/mame/ui/info_pty.h",
- MAME_DIR .. "src/frontend/mame/ui/inputmap.cpp",
- MAME_DIR .. "src/frontend/mame/ui/inputmap.h",
- MAME_DIR .. "src/frontend/mame/ui/selmenu.cpp",
- MAME_DIR .. "src/frontend/mame/ui/selmenu.h",
- MAME_DIR .. "src/frontend/mame/ui/sliders.cpp",
- MAME_DIR .. "src/frontend/mame/ui/sliders.h",
- MAME_DIR .. "src/frontend/mame/ui/slotopt.cpp",
- MAME_DIR .. "src/frontend/mame/ui/slotopt.h",
- MAME_DIR .. "src/frontend/mame/ui/swlist.cpp",
- MAME_DIR .. "src/frontend/mame/ui/swlist.h",
- MAME_DIR .. "src/frontend/mame/ui/tapectrl.cpp",
- MAME_DIR .. "src/frontend/mame/ui/tapectrl.h",
- MAME_DIR .. "src/frontend/mame/ui/videoopt.cpp",
- MAME_DIR .. "src/frontend/mame/ui/videoopt.h",
- MAME_DIR .. "src/frontend/mame/ui/viewgfx.cpp",
- MAME_DIR .. "src/frontend/mame/ui/viewgfx.h",
- MAME_DIR .. "src/frontend/mame/ui/auditmenu.cpp",
- MAME_DIR .. "src/frontend/mame/ui/auditmenu.h",
- MAME_DIR .. "src/frontend/mame/ui/custui.cpp",
- MAME_DIR .. "src/frontend/mame/ui/custui.h",
- MAME_DIR .. "src/frontend/mame/ui/datmenu.cpp",
- MAME_DIR .. "src/frontend/mame/ui/datmenu.h",
- MAME_DIR .. "src/frontend/mame/ui/defimg.ipp",
- MAME_DIR .. "src/frontend/mame/ui/dirmenu.cpp",
- MAME_DIR .. "src/frontend/mame/ui/dirmenu.h",
- MAME_DIR .. "src/frontend/mame/ui/icorender.cpp",
- MAME_DIR .. "src/frontend/mame/ui/icorender.h",
MAME_DIR .. "src/frontend/mame/ui/inifile.cpp",
MAME_DIR .. "src/frontend/mame/ui/inifile.h",
+ MAME_DIR .. "src/frontend/mame/ui/inputmap.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/inputmap.h",
+ MAME_DIR .. "src/frontend/mame/ui/mainmenu.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/mainmenu.h",
+ MAME_DIR .. "src/frontend/mame/ui/menu.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/menu.h",
MAME_DIR .. "src/frontend/mame/ui/miscmenu.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/miscmenu.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/miscmenu.h",
MAME_DIR .. "src/frontend/mame/ui/miscmenu.h",
MAME_DIR .. "src/frontend/mame/ui/moptions.cpp",
MAME_DIR .. "src/frontend/mame/ui/moptions.h",
MAME_DIR .. "src/frontend/mame/ui/optsmenu.cpp",
MAME_DIR .. "src/frontend/mame/ui/optsmenu.h",
+ MAME_DIR .. "src/frontend/mame/ui/pluginopt.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/pluginopt.h",
MAME_DIR .. "src/frontend/mame/ui/selector.cpp",
MAME_DIR .. "src/frontend/mame/ui/selector.h",
MAME_DIR .. "src/frontend/mame/ui/selgame.cpp",
MAME_DIR .. "src/frontend/mame/ui/selgame.h",
- MAME_DIR .. "src/frontend/mame/ui/simpleselgame.cpp",
- MAME_DIR .. "src/frontend/mame/ui/simpleselgame.h",
+ MAME_DIR .. "src/frontend/mame/ui/selmenu.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/selmenu.h",
MAME_DIR .. "src/frontend/mame/ui/selsoft.cpp",
MAME_DIR .. "src/frontend/mame/ui/selsoft.h",
+ MAME_DIR .. "src/frontend/mame/ui/simpleselgame.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/simpleselgame.h",
+ MAME_DIR .. "src/frontend/mame/ui/sliders.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/sliders.h",
+ MAME_DIR .. "src/frontend/mame/ui/slotopt.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/slotopt.h",
MAME_DIR .. "src/frontend/mame/ui/sndmenu.cpp",
MAME_DIR .. "src/frontend/mame/ui/sndmenu.h",
MAME_DIR .. "src/frontend/mame/ui/starimg.ipp",
MAME_DIR .. "src/frontend/mame/ui/state.cpp",
MAME_DIR .. "src/frontend/mame/ui/state.h",
+ MAME_DIR .. "src/frontend/mame/ui/submenu.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/submenu.h",
+ MAME_DIR .. "src/frontend/mame/ui/swlist.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/swlist.h",
+ MAME_DIR .. "src/frontend/mame/ui/tapectrl.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/tapectrl.h",
+ MAME_DIR .. "src/frontend/mame/ui/text.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/text.h",
MAME_DIR .. "src/frontend/mame/ui/toolbar.ipp",
+ MAME_DIR .. "src/frontend/mame/ui/ui.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/ui.h",
MAME_DIR .. "src/frontend/mame/ui/utils.cpp",
MAME_DIR .. "src/frontend/mame/ui/utils.h",
+ MAME_DIR .. "src/frontend/mame/ui/videoopt.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/videoopt.h",
+ MAME_DIR .. "src/frontend/mame/ui/viewgfx.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/viewgfx.h",
MAME_DIR .. "src/frontend/mame/ui/widgets.cpp",
MAME_DIR .. "src/frontend/mame/ui/widgets.h",
}
diff --git a/docs/release/scripts/src/netlist.lua b/docs/release/scripts/src/netlist.lua
index fd3a2fe8f82..70ff1f54467 100644
--- a/docs/release/scripts/src/netlist.lua
+++ b/docs/release/scripts/src/netlist.lua
@@ -62,19 +62,23 @@ project "netlist"
MAME_DIR .. "src/lib/netlist/plib/pdynlib.h",
MAME_DIR .. "src/lib/netlist/plib/pmain.cpp",
MAME_DIR .. "src/lib/netlist/plib/pmain.h",
+ MAME_DIR .. "src/lib/netlist/plib/pmath.h",
MAME_DIR .. "src/lib/netlist/plib/pmempool.h",
MAME_DIR .. "src/lib/netlist/plib/pomp.h",
MAME_DIR .. "src/lib/netlist/plib/poptions.cpp",
MAME_DIR .. "src/lib/netlist/plib/poptions.h",
- MAME_DIR .. "src/lib/netlist/plib/pparser.cpp",
- MAME_DIR .. "src/lib/netlist/plib/pparser.h",
MAME_DIR .. "src/lib/netlist/plib/ppmf.h",
+ MAME_DIR .. "src/lib/netlist/plib/ppreprocessor.cpp",
+ MAME_DIR .. "src/lib/netlist/plib/ppreprocessor.h",
MAME_DIR .. "src/lib/netlist/plib/pstate.h",
+ MAME_DIR .. "src/lib/netlist/plib/pstonum.h",
MAME_DIR .. "src/lib/netlist/plib/pstring.cpp",
MAME_DIR .. "src/lib/netlist/plib/pstring.h",
MAME_DIR .. "src/lib/netlist/plib/pstrutil.h",
MAME_DIR .. "src/lib/netlist/plib/pstream.h",
MAME_DIR .. "src/lib/netlist/plib/ptime.h",
+ MAME_DIR .. "src/lib/netlist/plib/ptokenizer.cpp",
+ MAME_DIR .. "src/lib/netlist/plib/ptokenizer.h",
MAME_DIR .. "src/lib/netlist/plib/ptypes.h",
MAME_DIR .. "src/lib/netlist/plib/putil.cpp",
MAME_DIR .. "src/lib/netlist/plib/putil.h",
@@ -122,6 +126,8 @@ project "netlist"
MAME_DIR .. "src/lib/netlist/devices/nld_4066.h",
MAME_DIR .. "src/lib/netlist/devices/nld_4316.cpp",
MAME_DIR .. "src/lib/netlist/devices/nld_4316.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_7442.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_7442.h",
MAME_DIR .. "src/lib/netlist/devices/nld_7448.cpp",
MAME_DIR .. "src/lib/netlist/devices/nld_7448.h",
MAME_DIR .. "src/lib/netlist/devices/nld_7450.cpp",
@@ -138,6 +144,8 @@ project "netlist"
MAME_DIR .. "src/lib/netlist/devices/nld_7485.h",
MAME_DIR .. "src/lib/netlist/devices/nld_7490.cpp",
MAME_DIR .. "src/lib/netlist/devices/nld_7490.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_7492.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_7492.h",
MAME_DIR .. "src/lib/netlist/devices/nld_7493.cpp",
MAME_DIR .. "src/lib/netlist/devices/nld_7493.h",
MAME_DIR .. "src/lib/netlist/devices/nld_7497.cpp",
diff --git a/docs/release/scripts/src/sound.lua b/docs/release/scripts/src/sound.lua
index 6f83f86aae3..752b8af30e6 100644
--- a/docs/release/scripts/src/sound.lua
+++ b/docs/release/scripts/src/sound.lua
@@ -1448,7 +1448,7 @@ end
---------------------------------------------------
-- Intelligent Designs DAVE
---@src/devices/sound/dave.h,MACHINES["DAVE"] = true
+--@src/devices/sound/dave.h,SOUNDS["DAVE"] = true
---------------------------------------------------
if (SOUNDS["DAVE"]~=null) then
diff --git a/docs/release/scripts/target/hbmame/hbmame.lua b/docs/release/scripts/target/hbmame/hbmame.lua
index 2caf4cd60d2..4204a703c3c 100644
--- a/docs/release/scripts/target/hbmame/hbmame.lua
+++ b/docs/release/scripts/target/hbmame/hbmame.lua
@@ -649,6 +649,7 @@ files {
MAME_DIR .. "src/hbmame/drivers/galaxian.cpp",
MAME_DIR .. "src/mame/audio/galaxian.cpp",
MAME_DIR .. "src/mame/video/galaxian.cpp",
+ MAME_DIR .. "src/mame/video/starfield_05xx.cpp",
MAME_DIR .. "src/hbmame/drivers/mappy.cpp",
MAME_DIR .. "src/mame/video/mappy.cpp",
MAME_DIR .. "src/hbmame/drivers/pacland.cpp",
@@ -919,7 +920,6 @@ files {
MAME_DIR .. "src/mame/machine/bublbobl.cpp",
MAME_DIR .. "src/mame/video/bublbobl.cpp",
MAME_DIR .. "src/hbmame/drivers/flstory.cpp",
- MAME_DIR .. "src/mame/machine/flstory.cpp",
MAME_DIR .. "src/mame/video/flstory.cpp",
MAME_DIR .. "src/hbmame/drivers/rastan.cpp",
MAME_DIR .. "src/mame/video/rastan.cpp",
diff --git a/docs/release/scripts/target/mame/arcade.lua b/docs/release/scripts/target/mame/arcade.lua
index 210ac27c79b..4567d6b0b60 100644
--- a/docs/release/scripts/target/mame/arcade.lua
+++ b/docs/release/scripts/target/mame/arcade.lua
@@ -608,6 +608,7 @@ MACHINES["SMPC"] = true
--MACHINES["SPG2XX"] = true
MACHINES["STVCD"] = true
--MACHINES["SUN4C_MMU"] = true
+MACHINES["SWTPC8212"] = true
MACHINES["TC0091LVC"] = true
--MACHINES["TDC1008"] = true
MACHINES["TE7750"] = true
@@ -1443,8 +1444,8 @@ files {
MAME_DIR .. "src/mame/drivers/1942.cpp",
MAME_DIR .. "src/mame/includes/1942.h",
MAME_DIR .. "src/mame/video/1942.cpp",
- MAME_DIR .. "src/mame/audio/nl_1942.cpp",
- MAME_DIR .. "src/mame/audio/nl_1942.h",
+ MAME_DIR .. "src/mame/audio/nl_1942.cpp",
+ MAME_DIR .. "src/mame/audio/nl_1942.h",
MAME_DIR .. "src/mame/drivers/1943.cpp",
MAME_DIR .. "src/mame/includes/1943.h",
MAME_DIR .. "src/mame/video/1943.cpp",
@@ -1466,6 +1467,8 @@ files {
MAME_DIR .. "src/mame/drivers/cps1.cpp",
MAME_DIR .. "src/mame/includes/cps1.h",
MAME_DIR .. "src/mame/video/cps1.cpp",
+ MAME_DIR .. "src/mame/drivers/cps1bl_5205.cpp",
+ MAME_DIR .. "src/mame/drivers/cps1bl_pic.cpp",
MAME_DIR .. "src/mame/drivers/kenseim.cpp",
MAME_DIR .. "src/mame/drivers/cps2.cpp",
MAME_DIR .. "src/mame/machine/cps2crypt.cpp",
@@ -1479,6 +1482,7 @@ files {
MAME_DIR .. "src/mame/includes/exedexes.h",
MAME_DIR .. "src/mame/video/exedexes.cpp",
MAME_DIR .. "src/mame/drivers/fcrash.cpp",
+ MAME_DIR .. "src/mame/includes/fcrash.h",
MAME_DIR .. "src/mame/drivers/gng.cpp",
MAME_DIR .. "src/mame/includes/gng.h",
MAME_DIR .. "src/mame/video/gng.cpp",
@@ -2688,6 +2692,7 @@ files {
MAME_DIR .. "src/mame/drivers/8080bw.cpp",
MAME_DIR .. "src/mame/includes/8080bw.h",
MAME_DIR .. "src/mame/audio/8080bw.cpp",
+ MAME_DIR .. "src/mame/audio/8080bw.h",
MAME_DIR .. "src/mame/video/8080bw.cpp",
MAME_DIR .. "src/mame/drivers/m79amb.cpp",
MAME_DIR .. "src/mame/includes/m79amb.h",
@@ -2796,6 +2801,8 @@ files {
MAME_DIR .. "src/mame/video/galaga.cpp",
MAME_DIR .. "src/mame/video/bosco.cpp",
MAME_DIR .. "src/mame/includes/bosco.h",
+ MAME_DIR .. "src/mame/video/starfield_05xx.cpp",
+ MAME_DIR .. "src/mame/video/starfield_05xx.h",
MAME_DIR .. "src/mame/video/digdug.cpp",
MAME_DIR .. "src/mame/includes/digdug.h",
MAME_DIR .. "src/mame/machine/xevious.cpp",
@@ -3082,8 +3089,8 @@ files {
MAME_DIR .. "src/mame/drivers/popeye.cpp",
MAME_DIR .. "src/mame/includes/popeye.h",
MAME_DIR .. "src/mame/video/popeye.cpp",
- MAME_DIR .. "src/mame/audio/nl_popeye.cpp",
- MAME_DIR .. "src/mame/audio/nl_popeye.h",
+ MAME_DIR .. "src/mame/audio/nl_popeye.cpp",
+ MAME_DIR .. "src/mame/audio/nl_popeye.h",
MAME_DIR .. "src/mame/drivers/punchout.cpp",
MAME_DIR .. "src/mame/includes/punchout.h",
MAME_DIR .. "src/mame/video/punchout.cpp",
@@ -3196,9 +3203,8 @@ files {
MAME_DIR .. "src/mame/drivers/jrpacman.cpp",
MAME_DIR .. "src/mame/drivers/pacman.cpp",
MAME_DIR .. "src/mame/includes/pacman.h",
+ MAME_DIR .. "src/mame/machine/pacman.cpp",
MAME_DIR .. "src/mame/video/pacman.cpp",
- MAME_DIR .. "src/mame/machine/epos.cpp",
- MAME_DIR .. "src/mame/machine/epos.h",
MAME_DIR .. "src/mame/machine/jumpshot.cpp",
MAME_DIR .. "src/mame/machine/jumpshot.h",
MAME_DIR .. "src/mame/machine/pacplus.cpp",
@@ -3870,7 +3876,6 @@ files {
MAME_DIR .. "src/mame/video/fgoal.cpp",
MAME_DIR .. "src/mame/drivers/flstory.cpp",
MAME_DIR .. "src/mame/includes/flstory.h",
- MAME_DIR .. "src/mame/machine/flstory.cpp",
MAME_DIR .. "src/mame/video/flstory.cpp",
MAME_DIR .. "src/mame/drivers/galastrm.cpp",
MAME_DIR .. "src/mame/includes/galastrm.h",
@@ -4663,8 +4668,8 @@ files {
MAME_DIR .. "src/mame/drivers/clowndwn.cpp",
MAME_DIR .. "src/mame/drivers/clpoker.cpp",
MAME_DIR .. "src/mame/drivers/cocoloco.cpp",
- MAME_DIR .. "src/mame/audio/nl_cocoloco.h",
- MAME_DIR .. "src/mame/audio/nl_cocoloco.cpp",
+ MAME_DIR .. "src/mame/audio/nl_cocoloco.h",
+ MAME_DIR .. "src/mame/audio/nl_cocoloco.cpp",
MAME_DIR .. "src/mame/drivers/coinmstr.cpp",
MAME_DIR .. "src/mame/drivers/coinmvga.cpp",
MAME_DIR .. "src/mame/drivers/comebaby.cpp",
@@ -4754,6 +4759,7 @@ files {
MAME_DIR .. "src/mame/drivers/gotcha.cpp",
MAME_DIR .. "src/mame/includes/gotcha.h",
MAME_DIR .. "src/mame/video/gotcha.cpp",
+ MAME_DIR .. "src/mame/drivers/gsspade.cpp",
MAME_DIR .. "src/mame/drivers/gumbo.cpp",
MAME_DIR .. "src/mame/includes/gumbo.h",
MAME_DIR .. "src/mame/video/gumbo.cpp",
diff --git a/docs/release/scripts/target/mame/mess.lua b/docs/release/scripts/target/mame/mess.lua
index f09ec3d999d..901164f1619 100644
--- a/docs/release/scripts/target/mame/mess.lua
+++ b/docs/release/scripts/target/mame/mess.lua
@@ -132,7 +132,7 @@ CPUS["E0C6200"] = true
CPUS["MELPS4"] = true
CPUS["HPHYBRID"] = true
CPUS["SM510"] = true
-CPUS["MB86901"] = true
+CPUS["SPARC"] = true
CPUS["NANOPROCESSOR"] = true
CPUS["CLIPPER"] = true
CPUS["CAPRICORN"] = true
@@ -147,6 +147,7 @@ CPUS["BCP"] = true
CPUS["F2MC16"] = true
CPUS["CR16B"] = true
CPUS["FR"] = true
+CPUS["DSP56000"] = true
--------------------------------------------------
-- specify available sound cores; some of these are
@@ -621,6 +622,7 @@ MACHINES["SMPC"] = true
MACHINES["SPG2XX"] = true
MACHINES["STVCD"] = true
MACHINES["SUN4C_MMU"] = true
+MACHINES["SWTPC8212"] = true
MACHINES["TC0091LVC"] = true
MACHINES["TDC1008"] = true
--MACHINES["TE7750"] = true
@@ -751,7 +753,9 @@ BUSES["ASTROCADE"] = true
BUSES["ATA"] = true
BUSES["BBC_FDC"] = true
BUSES["BBC_ANALOGUE"] = true
+BUSES["BBC_CART"] = true
BUSES["BBC_EXP"] = true
+BUSES["BBC_INTERNAL"] = true
BUSES["BBC_JOYPORT"] = true
BUSES["BBC_1MHZBUS"] = true
BUSES["BBC_TUBE"] = true
@@ -805,10 +809,7 @@ BUSES["IQ151"] = true
BUSES["ISA"] = true
BUSES["ISBX"] = true
BUSES["JAKKS_GAMEKEY"] = true
-BUSES["HP_OPTROM"] = true
-BUSES["HP80_OPTROM"] = true
BUSES["HP80_IO"] = true
-BUSES["HP9825_OPTROM"] = true
BUSES["HP9845_IO"] = true
BUSES["KC"] = true
BUSES["LPCI"] = true
@@ -1458,6 +1459,7 @@ files {
MAME_DIR .. "src/mame/drivers/cps1.cpp",
MAME_DIR .. "src/mame/includes/cps1.h",
MAME_DIR .. "src/mame/video/cps1.cpp",
+ MAME_DIR .. "src/mame/drivers/fcrash.cpp",
MAME_DIR .. "src/mame/video/xbox_nv2a.cpp",
MAME_DIR .. "src/mame/machine/xbox.cpp",
MAME_DIR .. "src/mame/machine/xbox_usb.cpp",
@@ -1589,7 +1591,9 @@ files {
createMESSProjects(_target, _subtarget, "ampro")
files {
+ MAME_DIR .. "src/mame/drivers/ampro.cpp",
MAME_DIR .. "src/mame/drivers/lb186.cpp",
+ MAME_DIR .. "src/mame/drivers/lbpc.cpp",
}
createMESSProjects(_target, _subtarget, "amstrad")
@@ -2370,6 +2374,7 @@ files {
MAME_DIR .. "src/mame/drivers/4004clk.cpp",
MAME_DIR .. "src/mame/drivers/68ksbc.cpp",
MAME_DIR .. "src/mame/drivers/craft.cpp",
+ MAME_DIR .. "src/mame/drivers/dcebridge.cpp",
MAME_DIR .. "src/mame/drivers/homez80.cpp",
MAME_DIR .. "src/mame/drivers/p112.cpp",
MAME_DIR .. "src/mame/drivers/phunsy.cpp",
@@ -2398,8 +2403,14 @@ files {
MAME_DIR .. "src/mame/machine/hp48.cpp",
MAME_DIR .. "src/mame/machine/hp48_port.cpp",
MAME_DIR .. "src/mame/machine/hp48_port.h",
+ MAME_DIR .. "src/mame/machine/hp80_optrom.cpp",
+ MAME_DIR .. "src/mame/machine/hp80_optrom.h",
+ MAME_DIR .. "src/mame/machine/hp9825_optrom.cpp",
+ MAME_DIR .. "src/mame/machine/hp9825_optrom.h",
MAME_DIR .. "src/mame/machine/hp9825_tape.cpp",
MAME_DIR .. "src/mame/machine/hp9825_tape.h",
+ MAME_DIR .. "src/mame/machine/hp9845_optrom.cpp",
+ MAME_DIR .. "src/mame/machine/hp9845_optrom.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",
@@ -2862,6 +2873,17 @@ files {
MAME_DIR .. "src/mame/drivers/gamecube.cpp",
MAME_DIR .. "src/mame/machine/m6502_vtscr.cpp",
MAME_DIR .. "src/mame/machine/m6502_vtscr.h",
+ MAME_DIR .. "src/mame/machine/m6502_vh2009.cpp",
+ MAME_DIR .. "src/mame/machine/m6502_vh2009.h",
+ MAME_DIR .. "src/mame/drivers/vt1682.cpp",
+ MAME_DIR .. "src/mame/machine/vt1682_io.h",
+ MAME_DIR .. "src/mame/machine/vt1682_io.cpp",
+ MAME_DIR .. "src/mame/machine/vt1682_alu.h",
+ MAME_DIR .. "src/mame/machine/vt1682_alu.cpp",
+ MAME_DIR .. "src/mame/machine/vt1682_timer.h",
+ MAME_DIR .. "src/mame/machine/vt1682_timer.cpp",
+ MAME_DIR .. "src/mame/machine/m6502_vt1682.cpp",
+ MAME_DIR .. "src/mame/machine/m6502_vt1682.h",
}
createMESSProjects(_target, _subtarget, "nokia")
@@ -3115,6 +3137,7 @@ files {
createMESSProjects(_target, _subtarget, "roland")
files {
MAME_DIR .. "src/mame/drivers/rmt32.cpp",
+ MAME_DIR .. "src/mame/drivers/rcm32p.cpp",
MAME_DIR .. "src/mame/drivers/rd110.cpp",
MAME_DIR .. "src/mame/drivers/rsc55.cpp",
MAME_DIR .. "src/mame/drivers/tb303.cpp",
@@ -3693,6 +3716,18 @@ files {
MAME_DIR .. "src/mame/audio/elan_eu3a05.h",
MAME_DIR .. "src/mame/machine/elan_eu3a05gpio.cpp",
MAME_DIR .. "src/mame/machine/elan_eu3a05gpio.h",
+ MAME_DIR .. "src/mame/machine/elan_eu3a05commonsys.cpp",
+ MAME_DIR .. "src/mame/machine/elan_eu3a05commonsys.h",
+ MAME_DIR .. "src/mame/machine/elan_eu3a05sys.cpp",
+ MAME_DIR .. "src/mame/machine/elan_eu3a05sys.h",
+ MAME_DIR .. "src/mame/machine/elan_eu3a14sys.cpp",
+ MAME_DIR .. "src/mame/machine/elan_eu3a14sys.h",
+ MAME_DIR .. "src/mame/video/elan_eu3a05commonvid.cpp",
+ MAME_DIR .. "src/mame/video/elan_eu3a05commonvid.h",
+ MAME_DIR .. "src/mame/video/elan_eu3a05vid.cpp",
+ MAME_DIR .. "src/mame/video/elan_eu3a05vid.h",
+ MAME_DIR .. "src/mame/video/elan_eu3a14vid.cpp",
+ MAME_DIR .. "src/mame/video/elan_eu3a14vid.h",
MAME_DIR .. "src/mame/drivers/trkfldch.cpp",
MAME_DIR .. "src/mame/drivers/tvgame.cpp",
MAME_DIR .. "src/mame/drivers/spg110.cpp",
@@ -3823,6 +3858,7 @@ files {
MAME_DIR .. "src/mame/audio/nl_gamemachine.cpp",
MAME_DIR .. "src/mame/drivers/geniusiq.cpp",
MAME_DIR .. "src/mame/drivers/geniusjr.cpp",
+ MAME_DIR .. "src/mame/drivers/gkidabc.cpp",
MAME_DIR .. "src/mame/drivers/glcx.cpp",
MAME_DIR .. "src/mame/drivers/vtech_eu3a12.cpp",
MAME_DIR .. "src/mame/drivers/iqunlim.cpp",
@@ -3946,11 +3982,11 @@ files {
MAME_DIR .. "src/mame/drivers/akaiax80.cpp",
MAME_DIR .. "src/mame/drivers/alcat7100.cpp",
MAME_DIR .. "src/mame/drivers/alesis_qs.cpp",
+ MAME_DIR .. "src/mame/drivers/alfaskop41xx.cpp",
MAME_DIR .. "src/mame/drivers/alphasma.cpp",
MAME_DIR .. "src/mame/drivers/am1000.cpp",
MAME_DIR .. "src/mame/drivers/ampex.cpp",
MAME_DIR .. "src/mame/drivers/ampex210.cpp",
- MAME_DIR .. "src/mame/drivers/ampro.cpp",
MAME_DIR .. "src/mame/drivers/ampscarp.cpp",
MAME_DIR .. "src/mame/drivers/amust.cpp",
MAME_DIR .. "src/mame/drivers/anzterm.cpp",
@@ -3976,6 +4012,7 @@ files {
MAME_DIR .. "src/mame/drivers/candela.cpp",
MAME_DIR .. "src/mame/drivers/cardinal.cpp",
MAME_DIR .. "src/mame/drivers/cbnt2039.cpp",
+ MAME_DIR .. "src/mame/drivers/cdsys5.cpp",
MAME_DIR .. "src/mame/drivers/chaos.cpp",
MAME_DIR .. "src/mame/drivers/cd2650.cpp",
MAME_DIR .. "src/mame/drivers/cdc721.cpp",
@@ -4016,6 +4053,7 @@ files {
MAME_DIR .. "src/mame/drivers/esprit.cpp",
MAME_DIR .. "src/mame/drivers/eti660.cpp",
MAME_DIR .. "src/mame/includes/eti660.h",
+ MAME_DIR .. "src/mame/drivers/eurit.cpp",
MAME_DIR .. "src/mame/drivers/eurocom2.cpp",
MAME_DIR .. "src/mame/drivers/excali64.cpp",
MAME_DIR .. "src/mame/drivers/facit4440.cpp",
@@ -4091,6 +4129,7 @@ files {
MAME_DIR .. "src/mame/drivers/ms9540.cpp",
MAME_DIR .. "src/mame/drivers/mstation.cpp",
MAME_DIR .. "src/mame/drivers/mt735.cpp",
+ MAME_DIR .. "src/mame/drivers/mtd1256.cpp",
MAME_DIR .. "src/mame/drivers/mx2178.cpp",
MAME_DIR .. "src/mame/drivers/mycom.cpp",
MAME_DIR .. "src/mame/drivers/myvision.cpp",
@@ -4134,6 +4173,7 @@ files {
MAME_DIR .. "src/mame/drivers/shine.cpp",
MAME_DIR .. "src/mame/drivers/si5500.cpp",
MAME_DIR .. "src/mame/drivers/sk101bl.cpp",
+ MAME_DIR .. "src/mame/drivers/slsstars.cpp",
MAME_DIR .. "src/mame/drivers/softbox.cpp",
MAME_DIR .. "src/mame/includes/softbox.h",
MAME_DIR .. "src/mame/drivers/squale.cpp",
diff --git a/docs/release/src/devices/cpu/m68000/m68kcpu.cpp b/docs/release/src/devices/cpu/m68000/m68kcpu.cpp
index f36a166e0cc..b821c19f986 100644
--- a/docs/release/src/devices/cpu/m68000/m68kcpu.cpp
+++ b/docs/release/src/devices/cpu/m68000/m68kcpu.cpp
@@ -1654,11 +1654,6 @@ void m68000_base_device::init32hmmu(address_space &space, address_space &ospace)
};
}
-void m68000_base_device::set_reset_callback(write_line_delegate callback)
-{
- m_reset_instr_callback = callback;
-}
-
// fault_addr = address to indicate fault at
// rw = 1 for read, 0 for write
// fc = 3-bit function code of access (usually you'd just put what m68k_get_fc() returns here)
@@ -1670,21 +1665,6 @@ void m68000_base_device::set_buserror_details(u32 fault_addr, u8 rw, u8 fc)
m_mmu_tmp_buserror_address = fault_addr; // Hack for x68030
}
-void m68000_base_device::set_cmpild_callback(write32_delegate callback)
-{
- m_cmpild_instr_callback = callback;
-}
-
-void m68000_base_device::set_rte_callback(write_line_delegate callback)
-{
- m_rte_instr_callback = callback;
-}
-
-void m68000_base_device::set_tas_write_callback(write8_delegate callback)
-{
- m_tas_write_callback = callback;
-}
-
u16 m68000_base_device::get_fc()
{
return m_mmu_tmp_fc;
@@ -1804,9 +1784,9 @@ void m68000_base_device::init_cpu_m68000(void)
m_cyc_dbcc_f_noexp = -2;
m_cyc_dbcc_f_exp = 2;
m_cyc_scc_r_true = 2;
- m_cyc_movem_w = 2;
- m_cyc_movem_l = 3;
- m_cyc_shift = 1;
+ m_cyc_movem_w = 4;
+ m_cyc_movem_l = 8;
+ m_cyc_shift = 2;
m_cyc_reset = 132;
m_has_pmmu = 0;
m_has_hmmu = 0;
@@ -1833,9 +1813,9 @@ void m68000_base_device::init_cpu_m68008(void)
m_cyc_dbcc_f_noexp = -2;
m_cyc_dbcc_f_exp = 2;
m_cyc_scc_r_true = 2;
- m_cyc_movem_w = 2;
- m_cyc_movem_l = 3;
- m_cyc_shift = 1;
+ m_cyc_movem_w = 4;
+ m_cyc_movem_l = 8;
+ m_cyc_shift = 2;
m_cyc_reset = 132;
m_has_pmmu = 0;
m_has_fpu = 0;
@@ -1860,9 +1840,9 @@ void m68000_base_device::init_cpu_m68010(void)
m_cyc_dbcc_f_noexp = 0;
m_cyc_dbcc_f_exp = 6;
m_cyc_scc_r_true = 0;
- m_cyc_movem_w = 2;
- m_cyc_movem_l = 3;
- m_cyc_shift = 1;
+ m_cyc_movem_w = 4;
+ m_cyc_movem_l = 8;
+ m_cyc_shift = 2;
m_cyc_reset = 130;
m_has_pmmu = 0;
m_has_fpu = 0;
@@ -1886,9 +1866,9 @@ void m68000_base_device::init_cpu_m68020(void)
m_cyc_dbcc_f_noexp = 0;
m_cyc_dbcc_f_exp = 4;
m_cyc_scc_r_true = 0;
- m_cyc_movem_w = 2;
- m_cyc_movem_l = 2;
- m_cyc_shift = 0;
+ m_cyc_movem_w = 4;
+ m_cyc_movem_l = 4;
+ m_cyc_shift = 1;
m_cyc_reset = 518;
define_state();
@@ -1942,9 +1922,9 @@ void m68000_base_device::init_cpu_m68ec020(void)
m_cyc_dbcc_f_noexp = 0;
m_cyc_dbcc_f_exp = 4;
m_cyc_scc_r_true = 0;
- m_cyc_movem_w = 2;
- m_cyc_movem_l = 2;
- m_cyc_shift = 0;
+ m_cyc_movem_w = 4;
+ m_cyc_movem_l = 4;
+ m_cyc_shift = 1;
m_cyc_reset = 518;
m_has_pmmu = 0;
m_has_fpu = 0;
@@ -1970,9 +1950,9 @@ void m68000_base_device::init_cpu_m68030(void)
m_cyc_dbcc_f_noexp = 0;
m_cyc_dbcc_f_exp = 4;
m_cyc_scc_r_true = 0;
- m_cyc_movem_w = 2;
- m_cyc_movem_l = 2;
- m_cyc_shift = 0;
+ m_cyc_movem_w = 4;
+ m_cyc_movem_l = 4;
+ m_cyc_shift = 1;
m_cyc_reset = 518;
m_has_pmmu = 1;
m_has_fpu = 1;
@@ -1999,9 +1979,9 @@ void m68000_base_device::init_cpu_m68ec030(void)
m_cyc_dbcc_f_noexp = 0;
m_cyc_dbcc_f_exp = 4;
m_cyc_scc_r_true = 0;
- m_cyc_movem_w = 2;
- m_cyc_movem_l = 2;
- m_cyc_shift = 0;
+ m_cyc_movem_w = 4;
+ m_cyc_movem_l = 4;
+ m_cyc_shift = 1;
m_cyc_reset = 518;
m_has_pmmu = 0; /* EC030 lacks the PMMU and is effectively a die-shrink 68020 */
m_has_fpu = 1;
@@ -2028,9 +2008,9 @@ void m68000_base_device::init_cpu_m68040(void)
m_cyc_dbcc_f_noexp = 0;
m_cyc_dbcc_f_exp = 4;
m_cyc_scc_r_true = 0;
- m_cyc_movem_w = 2;
- m_cyc_movem_l = 2;
- m_cyc_shift = 0;
+ m_cyc_movem_w = 4;
+ m_cyc_movem_l = 4;
+ m_cyc_shift = 1;
m_cyc_reset = 518;
m_has_pmmu = 1;
m_has_fpu = 1;
@@ -2056,9 +2036,9 @@ void m68000_base_device::init_cpu_m68ec040(void)
m_cyc_dbcc_f_noexp = 0;
m_cyc_dbcc_f_exp = 4;
m_cyc_scc_r_true = 0;
- m_cyc_movem_w = 2;
- m_cyc_movem_l = 2;
- m_cyc_shift = 0;
+ m_cyc_movem_w = 4;
+ m_cyc_movem_l = 4;
+ m_cyc_shift = 1;
m_cyc_reset = 518;
m_has_pmmu = 0;
m_has_fpu = 0;
@@ -2084,9 +2064,9 @@ void m68000_base_device::init_cpu_m68lc040(void)
m_cyc_dbcc_f_noexp = 0;
m_cyc_dbcc_f_exp = 4;
m_cyc_scc_r_true = 0;
- m_cyc_movem_w = 2;
- m_cyc_movem_l = 2;
- m_cyc_shift = 0;
+ m_cyc_movem_w = 4;
+ m_cyc_movem_l = 4;
+ m_cyc_shift = 1;
m_cyc_reset = 518;
m_has_pmmu = 1;
m_has_fpu = 0;
@@ -2100,21 +2080,20 @@ void m68000_base_device::init_cpu_scc68070(void)
init_cpu_common();
m_cpu_type = CPU_TYPE_SCC070;
- // TODO: most of this is subtly different
init16(*m_program, *m_oprogram);
m_sr_mask = 0xa71f; /* T1 -- S -- -- I2 I1 I0 -- -- -- X N Z V C */
m_state_table = m68ki_instruction_state_table[1];
m_cyc_instruction = m68ki_cycles[1];
m_cyc_exception = m68ki_exception_cycle_table[1];
- m_cyc_bcc_notake_b = -4;
+ m_cyc_bcc_notake_b = 0;
m_cyc_bcc_notake_w = 0;
- m_cyc_dbcc_f_noexp = 0;
- m_cyc_dbcc_f_exp = 6;
+ m_cyc_dbcc_f_noexp = 3;
+ m_cyc_dbcc_f_exp = 3;
m_cyc_scc_r_true = 0;
- m_cyc_movem_w = 2;
- m_cyc_movem_l = 3;
- m_cyc_shift = 1;
- m_cyc_reset = 130;
+ m_cyc_movem_w = 7;
+ m_cyc_movem_l = 11;
+ m_cyc_shift = 3;
+ m_cyc_reset = 154;
m_has_pmmu = 0;
m_has_fpu = 0;
@@ -2139,9 +2118,9 @@ void m68000_base_device::init_cpu_fscpu32(void)
m_cyc_dbcc_f_noexp = 0;
m_cyc_dbcc_f_exp = 4;
m_cyc_scc_r_true = 0;
- m_cyc_movem_w = 2;
- m_cyc_movem_l = 2;
- m_cyc_shift = 0;
+ m_cyc_movem_w = 4;
+ m_cyc_movem_l = 4;
+ m_cyc_shift = 1;
m_cyc_reset = 518;
define_state();
@@ -2166,9 +2145,9 @@ void m68000_base_device::init_cpu_coldfire(void)
m_cyc_dbcc_f_noexp = 0;
m_cyc_dbcc_f_exp = 4;
m_cyc_scc_r_true = 0;
- m_cyc_movem_w = 2;
- m_cyc_movem_l = 2;
- m_cyc_shift = 0;
+ m_cyc_movem_w = 4;
+ m_cyc_movem_l = 4;
+ m_cyc_shift = 1;
m_cyc_reset = 518;
define_state();
@@ -2344,7 +2323,11 @@ m68000_base_device::m68000_base_device(const machine_config &mconfig, const char
m_oprogram_config("decrypted_opcodes", ENDIANNESS_BIG, prg_data_width, prg_address_bits, 0, internal_map),
m_cpu_space_config("cpu space", ENDIANNESS_BIG, prg_data_width, prg_address_bits, 0, address_map_constructor(FUNC(m68000_base_device::default_autovectors_map), this)),
m_interrupt_mixer(true),
- m_cpu_space_id(AS_CPU_SPACE)
+ m_cpu_space_id(AS_CPU_SPACE),
+ m_reset_instr_callback(*this),
+ m_cmpild_instr_callback(*this),
+ m_rte_instr_callback(*this),
+ m_tas_write_callback(*this)
{
clear_all();
}
@@ -2357,7 +2340,11 @@ m68000_base_device::m68000_base_device(const machine_config &mconfig, const char
m_oprogram_config("decrypted_opcodes", ENDIANNESS_BIG, prg_data_width, prg_address_bits),
m_cpu_space_config("cpu space", ENDIANNESS_BIG, prg_data_width, prg_address_bits, 0, address_map_constructor(FUNC(m68000_base_device::default_autovectors_map), this)),
m_interrupt_mixer(true),
- m_cpu_space_id(AS_CPU_SPACE)
+ m_cpu_space_id(AS_CPU_SPACE),
+ m_reset_instr_callback(*this),
+ m_cmpild_instr_callback(*this),
+ m_rte_instr_callback(*this),
+ m_tas_write_callback(*this)
{
clear_all();
}
@@ -2412,9 +2399,9 @@ void m68000_base_device::clear_all()
m_cyc_dbcc_f_noexp = 0;
m_cyc_dbcc_f_exp = 0;
m_cyc_scc_r_true = 0;
- m_cyc_movem_w = 0;
- m_cyc_movem_l = 0;
- m_cyc_shift = 0;
+ m_cyc_movem_w = 1;
+ m_cyc_movem_l = 1;
+ m_cyc_shift = 1;
m_cyc_reset = 0;
m_initial_cycles = 0;
@@ -2482,13 +2469,13 @@ void m68000_base_device::autovectors_map(address_map &map)
{
// Eventually add the sync to E due to vpa
// 8-bit handlers are used here to be compatible with all bus widths
- map(0x3, 0x3).lr8("avec1", []() -> u8 { return autovector(1); });
- map(0x5, 0x5).lr8("avec2", []() -> u8 { return autovector(2); });
- map(0x7, 0x7).lr8("avec3", []() -> u8 { return autovector(3); });
- map(0x9, 0x9).lr8("avec4", []() -> u8 { return autovector(4); });
- map(0xb, 0xb).lr8("avec5", []() -> u8 { return autovector(5); });
- map(0xd, 0xd).lr8("avec6", []() -> u8 { return autovector(6); });
- map(0xf, 0xf).lr8("avec7", []() -> u8 { return autovector(7); });
+ map(0x3, 0x3).lr8(NAME([] () -> u8 { return autovector(1); }));
+ map(0x5, 0x5).lr8(NAME([] () -> u8 { return autovector(2); }));
+ map(0x7, 0x7).lr8(NAME([] () -> u8 { return autovector(3); }));
+ map(0x9, 0x9).lr8(NAME([] () -> u8 { return autovector(4); }));
+ map(0xb, 0xb).lr8(NAME([] () -> u8 { return autovector(5); }));
+ map(0xd, 0xd).lr8(NAME([] () -> u8 { return autovector(6); }));
+ map(0xf, 0xf).lr8(NAME([] () -> u8 { return autovector(7); }));
}
void m68000_base_device::default_autovectors_map(address_map &map)
@@ -2501,6 +2488,10 @@ void m68000_base_device::default_autovectors_map(address_map &map)
void m68000_base_device::device_start()
{
+ m_reset_instr_callback.resolve();
+ m_cmpild_instr_callback.resolve();
+ m_rte_instr_callback.resolve();
+ m_tas_write_callback.resolve();
}
void m68000_base_device::device_stop()
@@ -2594,6 +2585,7 @@ m68000_device::m68000_device(const machine_config &mconfig, const device_type ty
void m68000_device::device_start()
{
+ m68000_base_device::device_start();
init_cpu_m68000();
}
@@ -2617,6 +2609,7 @@ m68008_device::m68008_device(const machine_config &mconfig, const char *tag, dev
void m68008_device::device_start()
{
+ m68000_base_device::device_start();
init_cpu_m68008();
}
@@ -2628,6 +2621,7 @@ m68008fn_device::m68008fn_device(const machine_config &mconfig, const char *tag,
void m68008fn_device::device_start()
{
+ m68000_base_device::device_start();
init_cpu_m68008();
}
@@ -2640,6 +2634,7 @@ m68010_device::m68010_device(const machine_config &mconfig, const char *tag, dev
void m68010_device::device_start()
{
+ m68000_base_device::device_start();
init_cpu_m68010();
}
@@ -2652,6 +2647,7 @@ m68020_device::m68020_device(const machine_config &mconfig, const char *tag, dev
void m68020_device::device_start()
{
+ m68000_base_device::device_start();
init_cpu_m68020();
}
@@ -2663,6 +2659,7 @@ m68020fpu_device::m68020fpu_device(const machine_config &mconfig, const char *ta
void m68020fpu_device::device_start()
{
+ m68000_base_device::device_start();
init_cpu_m68020fpu();
}
@@ -2674,6 +2671,7 @@ m68020pmmu_device::m68020pmmu_device(const machine_config &mconfig, const char *
void m68020pmmu_device::device_start()
{
+ m68000_base_device::device_start();
init_cpu_m68020pmmu();
}
@@ -2699,6 +2697,7 @@ m68020hmmu_device::m68020hmmu_device(const machine_config &mconfig, const char *
void m68020hmmu_device::device_start()
{
+ m68000_base_device::device_start();
init_cpu_m68020hmmu();
}
@@ -2710,6 +2709,7 @@ m68ec020_device::m68ec020_device(const machine_config &mconfig, const char *tag,
void m68ec020_device::device_start()
{
+ m68000_base_device::device_start();
init_cpu_m68ec020();
}
@@ -2720,6 +2720,7 @@ m68030_device::m68030_device(const machine_config &mconfig, const char *tag, dev
void m68030_device::device_start()
{
+ m68000_base_device::device_start();
init_cpu_m68030();
}
@@ -2730,6 +2731,7 @@ m68ec030_device::m68ec030_device(const machine_config &mconfig, const char *tag,
void m68ec030_device::device_start()
{
+ m68000_base_device::device_start();
init_cpu_m68ec030();
}
@@ -2741,6 +2743,7 @@ m68040_device::m68040_device(const machine_config &mconfig, const char *tag, dev
void m68040_device::device_start()
{
+ m68000_base_device::device_start();
init_cpu_m68040();
}
@@ -2753,6 +2756,7 @@ m68ec040_device::m68ec040_device(const machine_config &mconfig, const char *tag,
void m68ec040_device::device_start()
{
+ m68000_base_device::device_start();
init_cpu_m68ec040();
}
@@ -2765,6 +2769,7 @@ m68lc040_device::m68lc040_device(const machine_config &mconfig, const char *tag,
void m68lc040_device::device_start()
{
+ m68000_base_device::device_start();
init_cpu_m68lc040();
}
@@ -2777,6 +2782,7 @@ scc68070_base_device::scc68070_base_device(const machine_config &mconfig, const
void scc68070_base_device::device_start()
{
+ m68000_base_device::device_start();
init_cpu_scc68070();
}
@@ -2795,6 +2801,7 @@ fscpu32_device::fscpu32_device(const machine_config &mconfig, const char *tag, d
void fscpu32_device::device_start()
{
+ m68000_base_device::device_start();
init_cpu_fscpu32();
}
@@ -2807,6 +2814,7 @@ mcf5206e_device::mcf5206e_device(const machine_config &mconfig, const char *tag,
void mcf5206e_device::device_start()
{
+ m68000_base_device::device_start();
init_cpu_coldfire();
}
diff --git a/docs/release/src/emu/emuopts.cpp b/docs/release/src/emu/emuopts.cpp
index 67373a294ca..1c664875e8d 100644
--- a/docs/release/src/emu/emuopts.cpp
+++ b/docs/release/src/emu/emuopts.cpp
@@ -88,6 +88,7 @@ const options_entry emu_options::s_option_entries[] =
{ 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 adjust emulation speed to keep the emulated refresh rate slower than the host screen" },
+ { OPTION_LOWLATENCY ";lolat", "0", OPTION_BOOLEAN, "draws new frame before throttling to reduce input latency" },
// render options
{ nullptr, nullptr, OPTION_HEADER, "CORE RENDER OPTIONS" },
@@ -236,7 +237,7 @@ namespace
{
}
- virtual const char *value() const override
+ virtual const char *value() const noexcept override
{
// This is returning an empty string instead of nullptr to signify that
// specifying the value is a meaningful operation. The option types that
@@ -286,7 +287,7 @@ namespace
{
}
- virtual const char *value() const override
+ virtual const char *value() const noexcept override
{
const char *result = nullptr;
if (m_host.specified())
@@ -297,6 +298,7 @@ namespace
// happen in practice
//
// In reality, I want to really return std::optional<std::string> here
+ // FIXME: the std::string assignment can throw exceptions, and returning std::optional<std::string> also isn't safe in noexcept
m_temp = m_host.specified_value();
result = m_temp.c_str();
}
@@ -324,7 +326,7 @@ namespace
{
}
- virtual const char *value() const override
+ virtual const char *value() const noexcept override
{
return m_host.value().c_str();
}
diff --git a/docs/release/src/emu/emuopts.h b/docs/release/src/emu/emuopts.h
index 970a90c67da..a1a23e77a2b 100644
--- a/docs/release/src/emu/emuopts.h
+++ b/docs/release/src/emu/emuopts.h
@@ -75,6 +75,7 @@
#define OPTION_SLEEP "sleep"
#define OPTION_SPEED "speed"
#define OPTION_REFRESHSPEED "refreshspeed"
+#define OPTION_LOWLATENCY "lowlatency"
// core render options
#define OPTION_KEEPASPECT "keepaspect"
@@ -352,6 +353,7 @@ public:
bool sleep() const { return m_sleep; }
float speed() const { return float_value(OPTION_SPEED); }
bool refresh_speed() const { return m_refresh_speed; }
+ bool low_latency() const { return bool_value(OPTION_LOWLATENCY); }
// core render options
bool keep_aspect() const { return bool_value(OPTION_KEEPASPECT); }
diff --git a/docs/release/src/emu/validity.cpp b/docs/release/src/emu/validity.cpp
index 2299d7d8381..d1764757f44 100644
--- a/docs/release/src/emu/validity.cpp
+++ b/docs/release/src/emu/validity.cpp
@@ -238,7 +238,7 @@ bool validity_checker::check_all_matching(const char *string)
// if we failed to match anything, it
if (string && !validated_any)
- throw emu_fatalerror(EMU_ERR_NO_SUCH_GAME, "No matching systems found for '%s'", string);
+ throw emu_fatalerror(EMU_ERR_NO_SUCH_SYSTEM, "No matching systems found for '%s'", string);
return !(m_errors > 0 || m_warnings > 0);
}
@@ -318,7 +318,7 @@ void validity_checker::validate_one(const game_driver &driver)
}
catch (emu_fatalerror &err)
{
- osd_printf_error("Fatal error %s", err.string());
+ osd_printf_error("Fatal error %s", err.what());
}
// if we had warnings or errors, output
diff --git a/docs/release/src/emu/video.cpp b/docs/release/src/emu/video.cpp
index d8bea693005..fa0efb88a89 100644
--- a/docs/release/src/emu/video.cpp
+++ b/docs/release/src/emu/video.cpp
@@ -91,6 +91,7 @@ video_manager::video_manager(running_machine &machine)
, m_seconds_to_run(machine.options().seconds_to_run())
, m_auto_frameskip(machine.options().auto_frameskip())
, m_speed(original_speed_setting())
+ , m_low_latency(machine.options().low_latency())
, m_empty_skip_count(0)
, m_frameskip_level(machine.options().frameskip())
, m_frameskip_counter(0)
@@ -229,7 +230,7 @@ void video_manager::frame_update(bool from_debugger)
// if we're throttling, synchronize before rendering
attotime current_time = machine().time();
- if (!from_debugger && !skipped_it && effective_throttle())
+ if (!from_debugger && !skipped_it && !m_low_latency && effective_throttle())
update_throttle(current_time);
// ask the OSD to update
@@ -237,6 +238,13 @@ void video_manager::frame_update(bool from_debugger)
machine().osd().update(!from_debugger && skipped_it);
g_profiler.stop();
+ // we synchronize after rendering instead of before, if low latency mode is enabled
+ if (!from_debugger && !skipped_it && m_low_latency && effective_throttle())
+ update_throttle(current_time);
+
+ // get most recent input now
+ machine().osd().input_update();
+
emulator_info::periodic_check();
// perform tasks for this frame
diff --git a/docs/release/src/emu/video.h b/docs/release/src/emu/video.h
index aa5390fd579..e58dd38e997 100644
--- a/docs/release/src/emu/video.h
+++ b/docs/release/src/emu/video.h
@@ -164,6 +164,7 @@ private:
u32 m_seconds_to_run; // number of seconds to run before quitting
bool m_auto_frameskip; // flag: true if we're automatically frameskipping
u32 m_speed; // overall speed (*1000)
+ bool m_low_latency; // flag: true if we are throttling after blitting
// frameskipping
u8 m_empty_skip_count; // number of empty frames we have skipped
diff --git a/docs/release/src/frontend/mame/info.cpp b/docs/release/src/frontend/mame/info.cpp
deleted file mode 100644
index e14fe63cdd8..00000000000
--- a/docs/release/src/frontend/mame/info.cpp
+++ /dev/null
@@ -1,2027 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Aaron Giles,Paul Priest
-/***************************************************************************
-
- info.cpp
-
- Dumps the MAME internal data as an XML file.
-
-***************************************************************************/
-
-#include "emu.h"
-
-#include "info.h"
-#include "mameopts.h"
-
-#include "machine/ram.h"
-#include "sound/samples.h"
-
-#include "config.h"
-#include "drivenum.h"
-#include "romload.h"
-#include "screen.h"
-#include "softlist_dev.h"
-#include "speaker.h"
-
-#include "xmlfile.h"
-
-#include <ctype.h>
-#include <cstring>
-#include <unordered_set>
-#include <queue>
-#include <future>
-
-
-#define XML_ROOT "mame"
-#define XML_TOP "machine"
-
-
-//**************************************************************************
-// ANONYMOUS NAMESPACE PROTOTYPES
-//**************************************************************************
-
-namespace
-{
- class device_type_compare
- {
- public:
- bool operator()(const std::add_pointer_t<device_type> &lhs, const std::add_pointer_t<device_type> &rhs) const;
- };
-
- typedef std::set<std::add_pointer_t<device_type>, device_type_compare> device_type_set;
-
- std::string normalize_string(const char *string);
-
- // internal helper
- void output_header(std::ostream &out, bool dtd);
- void output_footer(std::ostream &out);
-
- void output_one(std::ostream &out, driver_enumerator &drivlist, const game_driver &driver, device_type_set *devtypes);
- void output_sampleof(std::ostream &out, device_t &device);
- void output_bios(std::ostream &out, device_t const &device);
- void output_rom(std::ostream &out, driver_enumerator *drivlist, const game_driver *driver, device_t &device);
- void output_device_refs(std::ostream &out, device_t &root);
- void output_sample(std::ostream &out, device_t &device);
- void output_chips(std::ostream &out, device_t &device, const char *root_tag);
- void output_display(std::ostream &out, device_t &device, machine_flags::type const *flags, const char *root_tag);
- void output_sound(std::ostream &out, device_t &device);
- void output_ioport_condition(std::ostream &out, const ioport_condition &condition, unsigned indent);
- void output_input(std::ostream &out, const ioport_list &portlist);
- void output_switches(std::ostream &out, const ioport_list &portlist, const char *root_tag, int type, const char *outertag, const char *loctag, const char *innertag);
- void output_ports(std::ostream &out, const ioport_list &portlist);
- void output_adjusters(std::ostream &out, const ioport_list &portlist);
- void output_driver(std::ostream &out, game_driver const &driver, device_t::feature_type unemulated, device_t::feature_type imperfect);
- void output_features(std::ostream &out, device_type type, device_t::feature_type unemulated, device_t::feature_type imperfect);
- void output_images(std::ostream &out, device_t &device, const char *root_tag);
- void output_slots(std::ostream &out, machine_config &config, device_t &device, const char *root_tag, device_type_set *devtypes);
- void output_software_list(std::ostream &out, device_t &root);
- void output_ramoptions(std::ostream &out, device_t &root);
-
- void output_one_device(std::ostream &out, machine_config &config, device_t &device, const char *devtag);
- void output_devices(std::ostream &out, emu_options &lookup_options, device_type_set const *filter);
-
- const char *get_merge_name(driver_enumerator &drivlist, const game_driver &driver, util::hash_collection const &romhashes);
-};
-
-
-//**************************************************************************
-// GLOBAL VARIABLES
-//**************************************************************************
-
-// DTD string describing the data
-static const char s_dtd_string[] =
-"<!DOCTYPE __XML_ROOT__ [\n"
-"<!ELEMENT __XML_ROOT__ (__XML_TOP__+)>\n"
-"\t<!ATTLIST __XML_ROOT__ build CDATA #IMPLIED>\n"
-"\t<!ATTLIST __XML_ROOT__ debug (yes|no) \"no\">\n"
-"\t<!ATTLIST __XML_ROOT__ mameconfig CDATA #REQUIRED>\n"
-"\t<!ELEMENT __XML_TOP__ (description, year?, manufacturer?, biosset*, rom*, disk*, device_ref*, sample*, chip*, display*, sound?, input?, dipswitch*, configuration*, port*, adjuster*, driver?, feature*, device*, slot*, softwarelist*, ramoption*)>\n"
-"\t\t<!ATTLIST __XML_TOP__ name CDATA #REQUIRED>\n"
-"\t\t<!ATTLIST __XML_TOP__ sourcefile CDATA #IMPLIED>\n"
-"\t\t<!ATTLIST __XML_TOP__ isbios (yes|no) \"no\">\n"
-"\t\t<!ATTLIST __XML_TOP__ isdevice (yes|no) \"no\">\n"
-"\t\t<!ATTLIST __XML_TOP__ ismechanical (yes|no) \"no\">\n"
-"\t\t<!ATTLIST __XML_TOP__ runnable (yes|no) \"yes\">\n"
-"\t\t<!ATTLIST __XML_TOP__ cloneof CDATA #IMPLIED>\n"
-"\t\t<!ATTLIST __XML_TOP__ romof CDATA #IMPLIED>\n"
-"\t\t<!ATTLIST __XML_TOP__ sampleof CDATA #IMPLIED>\n"
-"\t\t<!ELEMENT description (#PCDATA)>\n"
-"\t\t<!ELEMENT year (#PCDATA)>\n"
-"\t\t<!ELEMENT manufacturer (#PCDATA)>\n"
-"\t\t<!ELEMENT biosset EMPTY>\n"
-"\t\t\t<!ATTLIST biosset name CDATA #REQUIRED>\n"
-"\t\t\t<!ATTLIST biosset description CDATA #REQUIRED>\n"
-"\t\t\t<!ATTLIST biosset default (yes|no) \"no\">\n"
-"\t\t<!ELEMENT rom EMPTY>\n"
-"\t\t\t<!ATTLIST rom name CDATA #REQUIRED>\n"
-"\t\t\t<!ATTLIST rom bios CDATA #IMPLIED>\n"
-"\t\t\t<!ATTLIST rom size CDATA #REQUIRED>\n"
-"\t\t\t<!ATTLIST rom crc CDATA #IMPLIED>\n"
-"\t\t\t<!ATTLIST rom sha1 CDATA #IMPLIED>\n"
-"\t\t\t<!ATTLIST rom merge CDATA #IMPLIED>\n"
-"\t\t\t<!ATTLIST rom region CDATA #IMPLIED>\n"
-"\t\t\t<!ATTLIST rom offset CDATA #IMPLIED>\n"
-"\t\t\t<!ATTLIST rom status (baddump|nodump|good) \"good\">\n"
-"\t\t\t<!ATTLIST rom optional (yes|no) \"no\">\n"
-"\t\t<!ELEMENT disk EMPTY>\n"
-"\t\t\t<!ATTLIST disk name CDATA #REQUIRED>\n"
-"\t\t\t<!ATTLIST disk sha1 CDATA #IMPLIED>\n"
-"\t\t\t<!ATTLIST disk merge CDATA #IMPLIED>\n"
-"\t\t\t<!ATTLIST disk region CDATA #IMPLIED>\n"
-"\t\t\t<!ATTLIST disk index CDATA #IMPLIED>\n"
-"\t\t\t<!ATTLIST disk writable (yes|no) \"no\">\n"
-"\t\t\t<!ATTLIST disk status (baddump|nodump|good) \"good\">\n"
-"\t\t\t<!ATTLIST disk optional (yes|no) \"no\">\n"
-"\t\t<!ELEMENT device_ref EMPTY>\n"
-"\t\t\t<!ATTLIST device_ref name CDATA #REQUIRED>\n"
-"\t\t<!ELEMENT sample EMPTY>\n"
-"\t\t\t<!ATTLIST sample name CDATA #REQUIRED>\n"
-"\t\t<!ELEMENT chip EMPTY>\n"
-"\t\t\t<!ATTLIST chip name CDATA #REQUIRED>\n"
-"\t\t\t<!ATTLIST chip tag CDATA #IMPLIED>\n"
-"\t\t\t<!ATTLIST chip type (cpu|audio) #REQUIRED>\n"
-"\t\t\t<!ATTLIST chip clock CDATA #IMPLIED>\n"
-"\t\t<!ELEMENT display EMPTY>\n"
-"\t\t\t<!ATTLIST display tag CDATA #IMPLIED>\n"
-"\t\t\t<!ATTLIST display type (raster|vector|lcd|svg|unknown) #REQUIRED>\n"
-"\t\t\t<!ATTLIST display rotate (0|90|180|270) #IMPLIED>\n"
-"\t\t\t<!ATTLIST display flipx (yes|no) \"no\">\n"
-"\t\t\t<!ATTLIST display width CDATA #IMPLIED>\n"
-"\t\t\t<!ATTLIST display height CDATA #IMPLIED>\n"
-"\t\t\t<!ATTLIST display refresh CDATA #REQUIRED>\n"
-"\t\t\t<!ATTLIST display pixclock CDATA #IMPLIED>\n"
-"\t\t\t<!ATTLIST display htotal CDATA #IMPLIED>\n"
-"\t\t\t<!ATTLIST display hbend CDATA #IMPLIED>\n"
-"\t\t\t<!ATTLIST display hbstart CDATA #IMPLIED>\n"
-"\t\t\t<!ATTLIST display vtotal CDATA #IMPLIED>\n"
-"\t\t\t<!ATTLIST display vbend CDATA #IMPLIED>\n"
-"\t\t\t<!ATTLIST display vbstart CDATA #IMPLIED>\n"
-"\t\t<!ELEMENT sound EMPTY>\n"
-"\t\t\t<!ATTLIST sound channels CDATA #REQUIRED>\n"
-"\t\t<!ELEMENT condition EMPTY>\n"
-"\t\t\t<!ATTLIST condition tag CDATA #REQUIRED>\n"
-"\t\t\t<!ATTLIST condition mask CDATA #REQUIRED>\n"
-"\t\t\t<!ATTLIST condition relation (eq|ne|gt|le|lt|ge) #REQUIRED>\n"
-"\t\t\t<!ATTLIST condition value CDATA #REQUIRED>\n"
-"\t\t<!ELEMENT input (control*)>\n"
-"\t\t\t<!ATTLIST input service (yes|no) \"no\">\n"
-"\t\t\t<!ATTLIST input tilt (yes|no) \"no\">\n"
-"\t\t\t<!ATTLIST input players CDATA #REQUIRED>\n"
-"\t\t\t<!ATTLIST input coins CDATA #IMPLIED>\n"
-"\t\t\t<!ELEMENT control EMPTY>\n"
-"\t\t\t\t<!ATTLIST control type CDATA #REQUIRED>\n"
-"\t\t\t\t<!ATTLIST control player CDATA #IMPLIED>\n"
-"\t\t\t\t<!ATTLIST control buttons CDATA #IMPLIED>\n"
-"\t\t\t\t<!ATTLIST control reqbuttons CDATA #IMPLIED>\n"
-"\t\t\t\t<!ATTLIST control minimum CDATA #IMPLIED>\n"
-"\t\t\t\t<!ATTLIST control maximum CDATA #IMPLIED>\n"
-"\t\t\t\t<!ATTLIST control sensitivity CDATA #IMPLIED>\n"
-"\t\t\t\t<!ATTLIST control keydelta CDATA #IMPLIED>\n"
-"\t\t\t\t<!ATTLIST control reverse (yes|no) \"no\">\n"
-"\t\t\t\t<!ATTLIST control ways CDATA #IMPLIED>\n"
-"\t\t\t\t<!ATTLIST control ways2 CDATA #IMPLIED>\n"
-"\t\t\t\t<!ATTLIST control ways3 CDATA #IMPLIED>\n"
-"\t\t<!ELEMENT dipswitch (condition?, diplocation*, dipvalue*)>\n"
-"\t\t\t<!ATTLIST dipswitch name CDATA #REQUIRED>\n"
-"\t\t\t<!ATTLIST dipswitch tag CDATA #REQUIRED>\n"
-"\t\t\t<!ATTLIST dipswitch mask CDATA #REQUIRED>\n"
-"\t\t\t<!ELEMENT condition EMPTY>\n"
-"\t\t\t<!ATTLIST condition tag CDATA #REQUIRED>\n"
-"\t\t\t<!ATTLIST condition mask CDATA #REQUIRED>\n"
-"\t\t\t<!ATTLIST condition relation (eq|ne|gt|le|lt|ge) #REQUIRED>\n"
-"\t\t\t<!ATTLIST condition value CDATA #REQUIRED>\n"
-"\t\t\t<!ELEMENT diplocation EMPTY>\n"
-"\t\t\t\t<!ATTLIST diplocation name CDATA #REQUIRED>\n"
-"\t\t\t\t<!ATTLIST diplocation number CDATA #REQUIRED>\n"
-"\t\t\t\t<!ATTLIST diplocation inverted (yes|no) \"no\">\n"
-"\t\t\t<!ELEMENT dipvalue (condition?)>\n"
-"\t\t\t\t<!ATTLIST dipvalue name CDATA #REQUIRED>\n"
-"\t\t\t\t<!ATTLIST dipvalue value CDATA #REQUIRED>\n"
-"\t\t\t\t<!ATTLIST dipvalue default (yes|no) \"no\">\n"
-"\t\t<!ELEMENT configuration (condition?, conflocation*, confsetting*)>\n"
-"\t\t\t<!ATTLIST configuration name CDATA #REQUIRED>\n"
-"\t\t\t<!ATTLIST configuration tag CDATA #REQUIRED>\n"
-"\t\t\t<!ATTLIST configuration mask CDATA #REQUIRED>\n"
-"\t\t\t<!ELEMENT conflocation EMPTY>\n"
-"\t\t\t\t<!ATTLIST conflocation name CDATA #REQUIRED>\n"
-"\t\t\t\t<!ATTLIST conflocation number CDATA #REQUIRED>\n"
-"\t\t\t\t<!ATTLIST conflocation inverted (yes|no) \"no\">\n"
-"\t\t\t<!ELEMENT confsetting (condition?)>\n"
-"\t\t\t\t<!ATTLIST confsetting name CDATA #REQUIRED>\n"
-"\t\t\t\t<!ATTLIST confsetting value CDATA #REQUIRED>\n"
-"\t\t\t\t<!ATTLIST confsetting default (yes|no) \"no\">\n"
-"\t\t<!ELEMENT port (analog*)>\n"
-"\t\t\t<!ATTLIST port tag CDATA #REQUIRED>\n"
-"\t\t\t<!ELEMENT analog EMPTY>\n"
-"\t\t\t\t<!ATTLIST analog mask CDATA #REQUIRED>\n"
-"\t\t<!ELEMENT adjuster (condition?)>\n"
-"\t\t\t<!ATTLIST adjuster name CDATA #REQUIRED>\n"
-"\t\t\t<!ATTLIST adjuster default CDATA #REQUIRED>\n"
-"\t\t<!ELEMENT driver EMPTY>\n"
-"\t\t\t<!ATTLIST driver status (good|imperfect|preliminary) #REQUIRED>\n"
-"\t\t\t<!ATTLIST driver emulation (good|imperfect|preliminary) #REQUIRED>\n"
-"\t\t\t<!ATTLIST driver cocktail (good|imperfect|preliminary) #IMPLIED>\n"
-"\t\t\t<!ATTLIST driver savestate (supported|unsupported) #REQUIRED>\n"
-"\t\t<!ELEMENT feature EMPTY>\n"
-"\t\t\t<!ATTLIST feature type (protection|timing|graphics|palette|sound|capture|camera|microphone|controls|keyboard|mouse|media|disk|printer|tape|punch|drum|rom|comms|lan|wan) #REQUIRED>\n"
-"\t\t\t<!ATTLIST feature status (unemulated|imperfect) #IMPLIED>\n"
-"\t\t\t<!ATTLIST feature overall (unemulated|imperfect) #IMPLIED>\n"
-"\t\t<!ELEMENT device (instance?, extension*)>\n"
-"\t\t\t<!ATTLIST device type CDATA #REQUIRED>\n"
-"\t\t\t<!ATTLIST device tag CDATA #IMPLIED>\n"
-"\t\t\t<!ATTLIST device fixed_image CDATA #IMPLIED>\n"
-"\t\t\t<!ATTLIST device mandatory CDATA #IMPLIED>\n"
-"\t\t\t<!ATTLIST device interface CDATA #IMPLIED>\n"
-"\t\t\t<!ELEMENT instance EMPTY>\n"
-"\t\t\t\t<!ATTLIST instance name CDATA #REQUIRED>\n"
-"\t\t\t\t<!ATTLIST instance briefname CDATA #REQUIRED>\n"
-"\t\t\t<!ELEMENT extension EMPTY>\n"
-"\t\t\t\t<!ATTLIST extension name CDATA #REQUIRED>\n"
-"\t\t<!ELEMENT slot (slotoption*)>\n"
-"\t\t\t<!ATTLIST slot name CDATA #REQUIRED>\n"
-"\t\t\t<!ELEMENT slotoption EMPTY>\n"
-"\t\t\t\t<!ATTLIST slotoption name CDATA #REQUIRED>\n"
-"\t\t\t\t<!ATTLIST slotoption devname CDATA #REQUIRED>\n"
-"\t\t\t\t<!ATTLIST slotoption default (yes|no) \"no\">\n"
-"\t\t<!ELEMENT softwarelist EMPTY>\n"
-"\t\t\t<!ATTLIST softwarelist name CDATA #REQUIRED>\n"
-"\t\t\t<!ATTLIST softwarelist status (original|compatible) #REQUIRED>\n"
-"\t\t\t<!ATTLIST softwarelist filter CDATA #IMPLIED>\n"
-"\t\t<!ELEMENT ramoption (#PCDATA)>\n"
-"\t\t\t<!ATTLIST ramoption name CDATA #REQUIRED>\n"
-"\t\t\t<!ATTLIST ramoption default CDATA #IMPLIED>\n"
-"]>";
-
-
-//**************************************************************************
-// INFO XML CREATOR
-//**************************************************************************
-
-//-------------------------------------------------
-// info_xml_creator - constructor
-//-------------------------------------------------
-
-info_xml_creator::info_xml_creator(emu_options const &options, bool dtd)
- : m_dtd(dtd)
-{
-}
-
-
-//-------------------------------------------------
-// output - print the XML information for all
-// known machines matching a pattern
-//-------------------------------------------------
-
-void info_xml_creator::output(std::ostream &out, const std::vector<std::string> &patterns)
-{
- if (patterns.empty())
- {
- // no patterns specified - show everything
- output(out);
- }
- else
- {
- // patterns specified - we have to filter output
- std::vector<bool> matched(patterns.size(), false);
- size_t exact_matches = 0;
- const auto filter = [&patterns, &matched, &exact_matches](const char *shortname, bool &done) -> bool
- {
- bool result = false;
- auto it = matched.begin();
- for (const std::string &pat : patterns)
- {
- if (!core_strwildcmp(pat.c_str(), shortname))
- {
- // this driver matches the pattern - tell the caller
- result = true;
-
- // did we see this particular pattern before? if not, track that we have
- if (!*it)
- {
- *it = true;
- if (!core_iswildstr(pat.c_str()))
- {
- exact_matches++;
-
- // stop looking if we found everything specified
- if (exact_matches == patterns.size())
- done = true;
- }
- }
- }
- it++;
- }
- return result;
- };
- output(out, filter);
-
- // throw an error if there were unmatched patterns
- auto iter = std::find(matched.begin(), matched.end(), false);
- if (iter != matched.end())
- {
- int index = iter - matched.begin();
- throw emu_fatalerror(EMU_ERR_NO_SUCH_GAME, "No matching machines found for '%s'", patterns[index].c_str());
- }
- }
-}
-
-
-//-------------------------------------------------
-// output - print the XML information for all
-// known (and filtered) machines
-//-------------------------------------------------
-
-void info_xml_creator::output(std::ostream &out, const std::function<bool(const char *shortname, bool &done)> &filter, bool include_devices)
-{
- struct prepared_info
- {
- std::string m_xml_snippet;
- device_type_set m_dev_set;
- };
-
- // prepare a driver enumerator and the queue
- driver_enumerator drivlist(m_lookup_options);
- bool drivlist_done = false;
- bool filter_done = false;
- bool header_outputted = false;
-
- auto output_header_if_necessary = [this, &header_outputted](std::ostream &out)
- {
- if (!header_outputted)
- {
- output_header(out, m_dtd);
- header_outputted = true;
- }
- };
-
- // only keep a device set when we're asked to track it
- std::unique_ptr<device_type_set> devfilter;
- if (include_devices && filter)
- devfilter = std::make_unique<device_type_set>();
-
- // prepare a queue of futures
- std::queue<std::future<prepared_info>> queue;
-
- // try enumerating drivers and outputting them
- while (!queue.empty() || (!drivlist_done && !filter_done))
- {
- // try populating the queue
- while (queue.size() < 20 && !drivlist_done && !filter_done)
- {
- if (!drivlist.next())
- {
- // at this point we are done enumerating through drivlist and it is no
- // longer safe to call next(), so record that we're done
- drivlist_done = true;
- }
- else if (!filter || filter(drivlist.driver().name, filter_done))
- {
- const game_driver &driver(drivlist.driver());
- std::future<prepared_info> future_pi = std::async(std::launch::async, [&drivlist, &driver, &devfilter]
- {
- prepared_info result;
- std::ostringstream stream;
-
- output_one(stream, drivlist, driver, devfilter ? &result.m_dev_set : nullptr);
- result.m_xml_snippet = stream.str();
- return result;
- });
- queue.push(std::move(future_pi));
- }
- }
-
- // now that we have the queue populated, try grabbing one (assuming that it is not empty)
- if (!queue.empty())
- {
- // wait for the future to complete and get the info
- prepared_info pi = queue.front().get();
- queue.pop();
-
- // emit the XML
- output_header_if_necessary(out);
- out << pi.m_xml_snippet;
-
- // merge devices into devfilter, if appropriate
- if (devfilter)
- {
- for (const auto &x : pi.m_dev_set)
- devfilter->insert(x);
- }
- }
- }
-
- // iterate through the device types if not everything matches a driver
- if (devfilter && !filter_done)
- {
- for (device_type type : registered_device_types)
- {
- if (!filter || filter(type.shortname(), filter_done))
- devfilter->insert(&type);
-
- if (filter_done)
- break;
- }
- }
-
- // output devices (both devices with roms and slot devices)
- if (include_devices && (!devfilter || !devfilter->empty()))
- {
- output_header_if_necessary(out);
- output_devices(out, m_lookup_options, devfilter.get());
- }
-
- if (header_outputted)
- output_footer(out);
-}
-
-
-//**************************************************************************
-// ANONYMOUS NAMESPACE IMPLEMENTATION
-//**************************************************************************
-
-namespace
-{
-
-//-------------------------------------------------
-// normalize_string
-//-------------------------------------------------
-
-std::string normalize_string(const char *string)
-{
- std::ostringstream stream;
-
- if (string != nullptr)
- {
- while (*string)
- {
- switch (*string)
- {
- case '\"': stream << "&quot;"; break;
- case '&': stream << "&amp;"; break;
- case '<': stream << "&lt;"; break;
- case '>': stream << "&gt;"; break;
- default:
- stream << *string;
- break;
- }
- ++string;
- }
- }
- return stream.str();
-}
-
-
-//-------------------------------------------------
-// output_header - print the XML DTD and open
-// the root element
-//-------------------------------------------------
-
-void output_header(std::ostream &out, bool dtd)
-{
- if (dtd)
- {
- // output the DTD
- out << "<?xml version=\"1.0\"?>\n";
- std::string dtd(s_dtd_string);
- strreplace(dtd, "__XML_ROOT__", XML_ROOT);
- strreplace(dtd, "__XML_TOP__", XML_TOP);
-
- out << dtd << "\n\n";
- }
-
- // top-level tag
- out << util::string_format("<%s build=\"%s\" debug=\""
-#ifdef MAME_DEBUG
- "yes"
-#else
- "no"
-#endif
- "\" mameconfig=\"%d\">\n",
- XML_ROOT,
- normalize_string(emulator_info::get_build_version()),
- CONFIG_VERSION);
-}
-
-
-//-------------------------------------------------
-// output_header - close the root element
-//-------------------------------------------------
-
-void output_footer(std::ostream &out)
-{
- // close the top level tag
- out << util::string_format("</%s>\n", XML_ROOT);
-}
-
-
-//-------------------------------------------------
-// output_one - print the XML information
-// for one particular machine driver
-//-------------------------------------------------
-
-void output_one(std::ostream &out, driver_enumerator &drivlist, const game_driver &driver, device_type_set *devtypes)
-{
- machine_config config(driver, drivlist.options());
- device_iterator iter(config.root_device());
-
- // allocate input ports and build overall emulation status
- ioport_list portlist;
- std::string errors;
- device_t::feature_type overall_unemulated(driver.type.unemulated_features());
- device_t::feature_type overall_imperfect(driver.type.imperfect_features());
- for (device_t &device : iter)
- {
- portlist.append(device, errors);
- overall_unemulated |= device.type().unemulated_features();
- overall_imperfect |= device.type().imperfect_features();
-
- if (devtypes && device.owner())
- devtypes->insert(&device.type());
- }
-
- // renumber player numbers for controller ports
- int player_offset = 0;
- // but treat keyboard count separately from players' number
- int kbd_offset = 0;
- for (device_t &device : iter)
- {
- int nplayers = 0;
- bool new_kbd = false;
- for (auto &port : portlist)
- if (&port.second->device() == &device)
- for (ioport_field &field : port.second->fields())
- if (field.type() >= IPT_START && field.type() < IPT_ANALOG_LAST)
- {
- if (field.type() == IPT_KEYBOARD)
- {
- if (!new_kbd)
- new_kbd = true;
- field.set_player(field.player() + kbd_offset);
- }
- else
- {
- nplayers = std::max(nplayers, field.player() + 1);
- field.set_player(field.player() + player_offset);
- }
- }
- player_offset += nplayers;
- if (new_kbd) kbd_offset++;
- }
-
- // print the header and the machine name
- out << util::string_format("\t<%s name=\"%s\"", XML_TOP, normalize_string(driver.name));
-
- // strip away any path information from the source_file and output it
- const char *start = strrchr(driver.type.source(), '/');
- if (!start)
- start = strrchr(driver.type.source(), '\\');
- start = start ? (start + 1) : driver.type.source();
- out << util::string_format(" sourcefile=\"%s\"", normalize_string(start));
-
- // append bios and runnable flags
- if (driver.flags & machine_flags::IS_BIOS_ROOT)
- out << " isbios=\"yes\"";
- if (driver.flags & machine_flags::MECHANICAL)
- out << " ismechanical=\"yes\"";
-
- // display clone information
- int clone_of = drivlist.find(driver.parent);
- if (clone_of != -1 && !(drivlist.driver(clone_of).flags & machine_flags::IS_BIOS_ROOT))
- out << util::string_format(" cloneof=\"%s\"", normalize_string(drivlist.driver(clone_of).name));
- if (clone_of != -1)
- out << util::string_format(" romof=\"%s\"", normalize_string(drivlist.driver(clone_of).name));
-
- // display sample information and close the game tag
- output_sampleof(out, config.root_device());
- out << ">\n";
-
- // output game description
- if (driver.type.fullname() != nullptr)
- out << util::string_format("\t\t<description>%s</description>\n", normalize_string(driver.type.fullname()));
-
- // print the year only if is a number or another allowed character (? or +)
- if (driver.year != nullptr && strspn(driver.year, "0123456789?+") == strlen(driver.year))
- out << util::string_format("\t\t<year>%s</year>\n", normalize_string(driver.year));
-
- // print the manufacturer information
- if (driver.manufacturer != nullptr)
- out << util::string_format("\t\t<manufacturer>%s</manufacturer>\n", normalize_string(driver.manufacturer));
-
- // now print various additional information
- output_bios(out, config.root_device());
- output_rom(out, &drivlist, &driver, config.root_device());
- output_device_refs(out, config.root_device());
- output_sample(out, config.root_device());
- output_chips(out, config.root_device(), "");
- output_display(out, config.root_device(), &driver.flags, "");
- output_sound(out, config.root_device());
- output_input(out, portlist);
- output_switches(out, portlist, "", IPT_DIPSWITCH, "dipswitch", "diplocation", "dipvalue");
- output_switches(out, portlist, "", IPT_CONFIG, "configuration", "conflocation", "confsetting");
- output_ports(out, portlist);
- output_adjusters(out, portlist);
- output_driver(out, driver, overall_unemulated, overall_imperfect);
- output_features(out, driver.type, overall_unemulated, overall_imperfect);
- output_images(out, config.root_device(), "");
- output_slots(out, config, config.root_device(), "", devtypes);
- output_software_list(out, config.root_device());
- output_ramoptions(out, config.root_device());
-
- // close the topmost tag
- out << util::string_format("\t</%s>\n", XML_TOP);
-}
-
-
-//-------------------------------------------------
-// output_one_device - print the XML info for
-// a single device
-//-------------------------------------------------
-
-void output_one_device(std::ostream &out, machine_config &config, device_t &device, const char *devtag)
-{
- bool has_speaker = false, has_input = false;
- // check if the device adds speakers to the system
- sound_interface_iterator snditer(device);
- if (snditer.first() != nullptr)
- has_speaker = true;
-
- // generate input list and build overall emulation status
- ioport_list portlist;
- std::string errors;
- device_t::feature_type overall_unemulated(device.type().unemulated_features());
- device_t::feature_type overall_imperfect(device.type().imperfect_features());
- for (device_t &dev : device_iterator(device))
- {
- portlist.append(dev, errors);
- overall_unemulated |= dev.type().unemulated_features();
- overall_imperfect |= dev.type().imperfect_features();
- }
-
- // check if the device adds player inputs (other than dsw and configs) to the system
- for (auto &port : portlist)
- for (ioport_field const &field : port.second->fields())
- if (field.type() >= IPT_START1 && field.type() < IPT_UI_FIRST)
- {
- has_input = true;
- break;
- }
-
- // start to output info
- out << util::string_format("\t<%s name=\"%s\"", XML_TOP, normalize_string(device.shortname()));
- std::string src(device.source());
- strreplace(src,"../", "");
- out << util::string_format(" sourcefile=\"%s\" isdevice=\"yes\" runnable=\"no\"", normalize_string(src.c_str()));
- output_sampleof(out, device);
- out << ">\n" << util::string_format("\t\t<description>%s</description>\n", normalize_string(device.name()));
-
- output_bios(out, device);
- output_rom(out, nullptr, nullptr, device);
- output_device_refs(out, device);
-
- if (device.type().type() != typeid(samples_device)) // ignore samples_device itself
- output_sample(out, device);
-
- output_chips(out, device, devtag);
- output_display(out, device, nullptr, devtag);
- if (has_speaker)
- output_sound(out, device);
- if (has_input)
- output_input(out, portlist);
- output_switches(out, portlist, devtag, IPT_DIPSWITCH, "dipswitch", "diplocation", "dipvalue");
- output_switches(out, portlist, devtag, IPT_CONFIG, "configuration", "conflocation", "confsetting");
- output_adjusters(out, portlist);
- output_features(out, device.type(), overall_unemulated, overall_imperfect);
- output_images(out, device, devtag);
- output_slots(out, config, device, devtag, nullptr);
- out << util::string_format("\t</%s>\n", XML_TOP);
-}
-
-
-//-------------------------------------------------
-// output_devices - print the XML info for
-// registered device types
-//-------------------------------------------------
-
-void output_devices(std::ostream &out, emu_options &lookup_options, device_type_set const *filter)
-{
- // get config for empty machine
- machine_config config(GAME_NAME(___empty), lookup_options);
-
- auto const action = [&config, &out] (device_type type)
- {
- // add it at the root of the machine config
- device_t *dev;
- {
- machine_config::token const tok(config.begin_configuration(config.root_device()));
- dev = config.device_add("_tmp", type, 0);
- }
-
- // notify this device and all its subdevices that they are now configured
- for (device_t &device : device_iterator(*dev))
- if (!device.configured())
- device.config_complete();
-
- // print details and remove it
- output_one_device(out, config, *dev, dev->tag());
- machine_config::token const tok(config.begin_configuration(config.root_device()));
- config.device_remove("_tmp");
- };
-
- // run through devices
- if (filter)
- {
- for (std::add_pointer_t<device_type> type : *filter) action(*type);
- }
- else
- {
- for (device_type type : registered_device_types) action(type);
- }
-}
-
-
-//------------------------------------------------
-// output_device_refs - when a machine uses a
-// subdevice, print a reference
-//-------------------------------------------------
-
-void output_device_refs(std::ostream &out, device_t &root)
-{
- for (device_t &device : device_iterator(root))
- if (&device != &root)
- out << util::string_format("\t\t<device_ref name=\"%s\"/>\n", normalize_string(device.shortname()));
-}
-
-
-//------------------------------------------------
-// output_sampleof - print the 'sampleof'
-// attribute, if appropriate
-//-------------------------------------------------
-
-void output_sampleof(std::ostream &out, device_t &device)
-{
- // iterate over sample devices
- for (samples_device &samples : samples_device_iterator(device))
- {
- samples_iterator sampiter(samples);
- if (sampiter.altbasename() != nullptr)
- {
- out << util::string_format(" sampleof=\"%s\"", normalize_string(sampiter.altbasename()));
-
- // must stop here, as there can only be one attribute of the same name
- return;
- }
- }
-}
-
-
-//-------------------------------------------------
-// output_bios - print BIOS sets for a device
-//-------------------------------------------------
-
-void output_bios(std::ostream &out, device_t const &device)
-{
- // first determine the default BIOS name
- char const *defaultname(nullptr);
- for (tiny_rom_entry const *rom = device.rom_region(); rom && !ROMENTRY_ISEND(rom); ++rom)
- {
- if (ROMENTRY_ISDEFAULT_BIOS(rom))
- defaultname = rom->name;
- }
-
- // iterate over ROM entries and look for BIOSes
- for (romload::system_bios const &bios : romload::entries(device.rom_region()).get_system_bioses())
- {
- // output extracted name and descriptions'
- out << "\t\t<biosset";
- out << util::string_format(" name=\"%s\"", normalize_string(bios.get_name()));
- out << util::string_format(" description=\"%s\"", normalize_string(bios.get_description()));
- if (defaultname && !std::strcmp(defaultname, bios.get_name()))
- out << " default=\"yes\"";
- out << "/>\n";
- }
-}
-
-
-//-------------------------------------------------
-// output_rom - print the roms section of
-// the XML output
-//-------------------------------------------------
-
-void output_rom(std::ostream &out, driver_enumerator *drivlist, const game_driver *driver, device_t &device)
-{
- enum class type { BIOS, NORMAL, DISK };
- std::map<u32, char const *> biosnames;
- bool bios_scanned(false);
- auto const get_biosname =
- [&biosnames, &bios_scanned] (tiny_rom_entry const *rom) -> char const *
- {
- u32 const biosflags(ROM_GETBIOSFLAGS(rom));
- std::map<u32, char const *>::const_iterator const found(biosnames.find(biosflags));
- if (biosnames.end() != found)
- return found->second;
-
- char const *result(nullptr);
- if (!bios_scanned)
- {
- for (++rom; !ROMENTRY_ISEND(rom); ++rom)
- {
- if (ROMENTRY_ISSYSTEM_BIOS(rom))
- {
- u32 const biosno(ROM_GETBIOSFLAGS(rom));
- biosnames.emplace(biosno, rom->name);
- if (biosflags == biosno)
- result = rom->name;
- }
- }
- bios_scanned = true;
- }
- return result;
- };
- auto const rom_file_size = // FIXME: need a common way to do this without the cost of allocating rom_entry
- [] (tiny_rom_entry const *romp) -> u32
- {
- u32 maxlength = 0;
-
- // loop until we run out of reloads
- do
- {
- // loop until we run out of continues/ignores */
- u32 curlength(ROM_GETLENGTH(romp++));
- while (ROMENTRY_ISCONTINUE(romp) || ROMENTRY_ISIGNORE(romp))
- curlength += ROM_GETLENGTH(romp++);
-
- // track the maximum length
- maxlength = (std::max)(maxlength, curlength);
- }
- while (ROMENTRY_ISRELOAD(romp));
-
- return maxlength;
- };
-
- // iterate over 3 different ROM "types": BIOS, ROMs, DISKs
- bool const do_merge_name = drivlist && dynamic_cast<driver_device *>(&device);
- for (type pass : { type::BIOS, type::NORMAL, type::DISK })
- {
- tiny_rom_entry const *region(nullptr);
- for (tiny_rom_entry const *rom = device.rom_region(); rom && !ROMENTRY_ISEND(rom); ++rom)
- {
- if (ROMENTRY_ISREGION(rom))
- region = rom;
- else if (ROMENTRY_ISSYSTEM_BIOS(rom))
- biosnames.emplace(ROM_GETBIOSFLAGS(rom), rom->name);
-
- if (!ROMENTRY_ISFILE(rom))
- continue;
-
- // only list disks on the disk pass
- bool const is_disk = ROMREGION_ISDISKDATA(region);
- if ((type::DISK == pass) != is_disk)
- continue;
-
- // BIOS ROMs only apply to bioses
- // FIXME: disk images associated with a system BIOS will never be listed
- u32 const biosno(ROM_GETBIOSFLAGS(rom));
- if ((type::BIOS == pass) != bool(biosno))
- continue;
- char const *const bios_name((!is_disk && biosno) ? get_biosname(rom) : nullptr);
-
- // if we have a valid ROM and we are a clone, see if we can find the parent ROM
- util::hash_collection const hashes(rom->hashdata);
- char const *const merge_name((do_merge_name && !hashes.flag(util::hash_collection::FLAG_NO_DUMP)) ? get_merge_name(*drivlist, *driver, hashes) : nullptr);
-
- // opening tag
- if (is_disk)
- out << "\t\t<disk";
- else
- out << "\t\t<rom";
-
- // add name, merge, bios, and size tags */
- char const *const name(rom->name);
- if (name && name[0])
- out << util::string_format(" name=\"%s\"", normalize_string(name));
- if (merge_name)
- out << util::string_format(" merge=\"%s\"", normalize_string(merge_name));
- if (bios_name)
- out << util::string_format(" bios=\"%s\"", normalize_string(bios_name));
- if (!is_disk)
- out << util::string_format(" size=\"%u\"", rom_file_size(rom));
-
- // dump checksum information only if there is a known dump
- if (!hashes.flag(util::hash_collection::FLAG_NO_DUMP))
- out << ' ' << hashes.attribute_string(); // iterate over hash function types and print m_output their values
- else
- out << " status=\"nodump\"";
-
- // append a region name
- out << util::string_format(" region=\"%s\"", region->name);
-
- if (!is_disk)
- {
- // for non-disk entries, print offset
- out << util::string_format(" offset=\"%x\"", ROM_GETOFFSET(rom));
- }
- else
- {
- // for disk entries, add the disk index
- out << util::string_format(" index=\"%x\" writable=\"%s\"", DISK_GETINDEX(rom), DISK_ISREADONLY(rom) ? "no" : "yes");
- }
-
- // add optional flag
- if (ROM_ISOPTIONAL(rom))
- out << " optional=\"yes\"";
-
- out << "/>\n";
- }
- bios_scanned = true;
- }
-}
-
-
-//-------------------------------------------------
-// output_sample - print a list of all
-// samples referenced by a game_driver
-//-------------------------------------------------
-
-void output_sample(std::ostream &out, device_t &device)
-{
- // iterate over sample devices
- for (samples_device &samples : samples_device_iterator(device))
- {
- samples_iterator iter(samples);
- std::unordered_set<std::string> already_printed;
- for (const char *samplename = iter.first(); samplename != nullptr; samplename = iter.next())
- {
- // filter out duplicates
- if (!already_printed.insert(samplename).second)
- continue;
-
- // output the sample name
- out << util::string_format("\t\t<sample name=\"%s\"/>\n", normalize_string(samplename));
- }
- }
-}
-
-
-/*-------------------------------------------------
- output_chips - print a list of CPU and
- sound chips used by a game
--------------------------------------------------*/
-
-void output_chips(std::ostream &out, device_t &device, const char *root_tag)
-{
- // iterate over executable devices
- for (device_execute_interface &exec : execute_interface_iterator(device))
- {
- if (strcmp(exec.device().tag(), device.tag()))
- {
- std::string newtag(exec.device().tag()), oldtag(":");
- newtag = newtag.substr(newtag.find(oldtag.append(root_tag)) + oldtag.length());
-
- out << "\t\t<chip";
- out << " type=\"cpu\"";
- out << util::string_format(" tag=\"%s\"", normalize_string(newtag.c_str()));
- out << util::string_format(" name=\"%s\"", normalize_string(exec.device().name()));
- out << util::string_format(" clock=\"%d\"", exec.device().clock());
- out << "/>\n";
- }
- }
-
- // iterate over sound devices
- for (device_sound_interface &sound : sound_interface_iterator(device))
- {
- if (strcmp(sound.device().tag(), device.tag()) != 0 && sound.issound())
- {
- std::string newtag(sound.device().tag()), oldtag(":");
- newtag = newtag.substr(newtag.find(oldtag.append(root_tag)) + oldtag.length());
-
- out << "\t\t<chip";
- out << " type=\"audio\"";
- out << util::string_format(" tag=\"%s\"", normalize_string(newtag.c_str()));
- out << util::string_format(" name=\"%s\"", normalize_string(sound.device().name()));
- if (sound.device().clock() != 0)
- out << util::string_format(" clock=\"%d\"", sound.device().clock());
- out << "/>\n";
- }
- }
-}
-
-
-//-------------------------------------------------
-// output_display - print a list of all the
-// displays
-//-------------------------------------------------
-
-void output_display(std::ostream &out, device_t &device, machine_flags::type const *flags, const char *root_tag)
-{
- // iterate over screens
- for (const screen_device &screendev : screen_device_iterator(device))
- {
- if (strcmp(screendev.tag(), device.tag()))
- {
- std::string newtag(screendev.tag()), oldtag(":");
- newtag = newtag.substr(newtag.find(oldtag.append(root_tag)) + oldtag.length());
-
- out << util::string_format("\t\t<display tag=\"%s\"", normalize_string(newtag.c_str()));
-
- switch (screendev.screen_type())
- {
- case SCREEN_TYPE_RASTER: out << " type=\"raster\""; break;
- case SCREEN_TYPE_VECTOR: out << " type=\"vector\""; break;
- case SCREEN_TYPE_LCD: out << " type=\"lcd\""; break;
- case SCREEN_TYPE_SVG: out << " type=\"svg\""; break;
- default: out << " type=\"unknown\""; break;
- }
-
- // output the orientation as a string
- switch (screendev.orientation())
- {
- case ORIENTATION_FLIP_X:
- out << " rotate=\"0\" flipx=\"yes\"";
- break;
- case ORIENTATION_FLIP_Y:
- out << " rotate=\"180\" flipx=\"yes\"";
- break;
- case ORIENTATION_FLIP_X|ORIENTATION_FLIP_Y:
- out << " rotate=\"180\"";
- break;
- case ORIENTATION_SWAP_XY:
- out << " rotate=\"90\" flipx=\"yes\"";
- break;
- case ORIENTATION_SWAP_XY|ORIENTATION_FLIP_X:
- out << " rotate=\"90\"";
- break;
- case ORIENTATION_SWAP_XY|ORIENTATION_FLIP_Y:
- out << " rotate=\"270\"";
- break;
- case ORIENTATION_SWAP_XY|ORIENTATION_FLIP_X|ORIENTATION_FLIP_Y:
- out << " rotate=\"270\" flipx=\"yes\"";
- break;
- default:
- out << " rotate=\"0\"";
- break;
- }
-
- // output width and height only for games that are not vector
- if (screendev.screen_type() != SCREEN_TYPE_VECTOR)
- {
- const rectangle &visarea = screendev.visible_area();
- out << util::string_format(" width=\"%d\"", visarea.width());
- out << util::string_format(" height=\"%d\"", visarea.height());
- }
-
- // output refresh rate
- out << util::string_format(" refresh=\"%f\"", ATTOSECONDS_TO_HZ(screendev.refresh_attoseconds()));
-
- // output raw video parameters only for games that are not vector
- // and had raw parameters specified
- if (screendev.screen_type() != SCREEN_TYPE_VECTOR && !screendev.oldstyle_vblank_supplied())
- {
- int pixclock = screendev.width() * screendev.height() * ATTOSECONDS_TO_HZ(screendev.refresh_attoseconds());
-
- out << util::string_format(" pixclock=\"%d\"", pixclock);
- out << util::string_format(" htotal=\"%d\"", screendev.width());
- out << util::string_format(" hbend=\"%d\"", screendev.visible_area().min_x);
- out << util::string_format(" hbstart=\"%d\"", screendev.visible_area().max_x+1);
- out << util::string_format(" vtotal=\"%d\"", screendev.height());
- out << util::string_format(" vbend=\"%d\"", screendev.visible_area().min_y);
- out << util::string_format(" vbstart=\"%d\"", screendev.visible_area().max_y+1);
- }
- out << " />\n";
- }
- }
-}
-
-
-//-------------------------------------------------
-// output_sound - print a list of all the
-// speakers
-//------------------------------------------------
-
-void output_sound(std::ostream &out, device_t &device)
-{
- speaker_device_iterator spkiter(device);
- int speakers = spkiter.count();
-
- // if we have no sound, zero m_output the speaker count
- sound_interface_iterator snditer(device);
- if (snditer.first() == nullptr)
- speakers = 0;
-
- out << util::string_format("\t\t<sound channels=\"%d\"/>\n", speakers);
-}
-
-
-//-------------------------------------------------
-// output_ioport_condition - print condition
-// required to use I/O port field/setting
-//-------------------------------------------------
-
-void output_ioport_condition(std::ostream &out, const ioport_condition &condition, unsigned indent)
-{
- for (unsigned i = 0; indent > i; ++i)
- out << '\t';
-
- char const *rel(nullptr);
- switch (condition.condition())
- {
- case ioport_condition::ALWAYS: throw false;
- case ioport_condition::EQUALS: rel = "eq"; break;
- case ioport_condition::NOTEQUALS: rel = "ne"; break;
- case ioport_condition::GREATERTHAN: rel = "gt"; break;
- case ioport_condition::NOTGREATERTHAN: rel = "le"; break;
- case ioport_condition::LESSTHAN: rel = "lt"; break;
- case ioport_condition::NOTLESSTHAN: rel = "ge"; break;
- }
-
- out << util::string_format("<condition tag=\"%s\" mask=\"%u\" relation=\"%s\" value=\"%u\"/>\n", normalize_string(condition.tag()), condition.mask(), rel, condition.value());
-}
-
-//-------------------------------------------------
-// output_input - print a summary of a game's
-// input
-//-------------------------------------------------
-
-void output_input(std::ostream &out, const ioport_list &portlist)
-{
- // enumerated list of control types
- // NOTE: the order is chosen so that 'spare' button inputs are assigned to the
- // most-likely-correct input device when info is output (you can think of it as
- // a sort of likelihood order of having buttons)
- enum
- {
- CTRL_DIGITAL_BUTTONS,
- CTRL_DIGITAL_JOYSTICK,
- CTRL_ANALOG_JOYSTICK,
- CTRL_ANALOG_LIGHTGUN,
- CTRL_ANALOG_DIAL,
- CTRL_ANALOG_POSITIONAL,
- CTRL_ANALOG_TRACKBALL,
- CTRL_ANALOG_MOUSE,
- CTRL_ANALOG_PADDLE,
- CTRL_ANALOG_PEDAL,
- CTRL_DIGITAL_KEYPAD,
- CTRL_DIGITAL_KEYBOARD,
- CTRL_DIGITAL_MAHJONG,
- CTRL_DIGITAL_HANAFUDA,
- CTRL_DIGITAL_GAMBLING,
- CTRL_COUNT
- };
-
- enum
- {
- CTRL_P1,
- CTRL_P2,
- CTRL_P3,
- CTRL_P4,
- CTRL_P5,
- CTRL_P6,
- CTRL_P7,
- CTRL_P8,
- CTRL_P9,
- CTRL_P10,
- CTRL_PCOUNT
- };
-
- // directions
- const uint8_t DIR_UP = 0x01;
- const uint8_t DIR_DOWN = 0x02;
- const uint8_t DIR_LEFT = 0x04;
- const uint8_t DIR_RIGHT = 0x08;
-
- // initialize the list of control types
- struct
- {
- const char * type; // general type of input
- int player; // player which the input belongs to
- int nbuttons; // total number of buttons
- int reqbuttons; // total number of non-optional buttons
- int maxbuttons; // max index of buttons (using IPT_BUTTONn) [probably to be removed soonish]
- int ways; // directions for joystick
- bool analog; // is analog input?
- uint8_t helper[3]; // for dual joysticks [possibly to be removed soonish]
- int32_t min; // analog minimum value
- int32_t max; // analog maximum value
- int32_t sensitivity; // default analog sensitivity
- int32_t keydelta; // default analog keydelta
- bool reverse; // default analog reverse setting
- } control_info[CTRL_COUNT * CTRL_PCOUNT];
-
- memset(&control_info, 0, sizeof(control_info));
-
- // tracking info as we iterate
- int nplayer = 0;
- int ncoin = 0;
- bool service = false;
- bool tilt = false;
-
- // iterate over the ports
- for (auto &port : portlist)
- {
- int ctrl_type = CTRL_DIGITAL_BUTTONS;
- bool ctrl_analog = false;
- for (ioport_field &field : port.second->fields())
- {
- // track the highest player number
- if (nplayer < field.player() + 1)
- nplayer = field.player() + 1;
-
- // switch off of the type
- switch (field.type())
- {
- // map joysticks
- case IPT_JOYSTICK_UP:
- ctrl_type = CTRL_DIGITAL_JOYSTICK;
- control_info[field.player() * CTRL_COUNT + ctrl_type].type = "joy";
- control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
- control_info[field.player() * CTRL_COUNT + ctrl_type].ways = field.way();
- control_info[field.player() * CTRL_COUNT + ctrl_type].helper[0] |= DIR_UP;
- break;
- case IPT_JOYSTICK_DOWN:
- ctrl_type = CTRL_DIGITAL_JOYSTICK;
- control_info[field.player() * CTRL_COUNT + ctrl_type].type = "joy";
- control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
- control_info[field.player() * CTRL_COUNT + ctrl_type].ways = field.way();
- control_info[field.player() * CTRL_COUNT + ctrl_type].helper[0] |= DIR_DOWN;
- break;
- case IPT_JOYSTICK_LEFT:
- ctrl_type = CTRL_DIGITAL_JOYSTICK;
- control_info[field.player() * CTRL_COUNT + ctrl_type].type = "joy";
- control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
- control_info[field.player() * CTRL_COUNT + ctrl_type].ways = field.way();
- control_info[field.player() * CTRL_COUNT + ctrl_type].helper[0] |= DIR_LEFT;
- break;
- case IPT_JOYSTICK_RIGHT:
- ctrl_type = CTRL_DIGITAL_JOYSTICK;
- control_info[field.player() * CTRL_COUNT + ctrl_type].type = "joy";
- control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
- control_info[field.player() * CTRL_COUNT + ctrl_type].ways = field.way();
- control_info[field.player() * CTRL_COUNT + ctrl_type].helper[0] |= DIR_RIGHT;
- break;
-
- case IPT_JOYSTICKLEFT_UP:
- ctrl_type = CTRL_DIGITAL_JOYSTICK;
- control_info[field.player() * CTRL_COUNT + ctrl_type].type = "joy";
- control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
- control_info[field.player() * CTRL_COUNT + ctrl_type].ways = field.way();
- control_info[field.player() * CTRL_COUNT + ctrl_type].helper[1] |= DIR_UP;
- break;
- case IPT_JOYSTICKLEFT_DOWN:
- ctrl_type = CTRL_DIGITAL_JOYSTICK;
- control_info[field.player() * CTRL_COUNT + ctrl_type].type = "joy";
- control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
- control_info[field.player() * CTRL_COUNT + ctrl_type].ways = field.way();
- control_info[field.player() * CTRL_COUNT + ctrl_type].helper[1] |= DIR_DOWN;
- break;
- case IPT_JOYSTICKLEFT_LEFT:
- ctrl_type = CTRL_DIGITAL_JOYSTICK;
- control_info[field.player() * CTRL_COUNT + ctrl_type].type = "joy";
- control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
- control_info[field.player() * CTRL_COUNT + ctrl_type].ways = field.way();
- control_info[field.player() * CTRL_COUNT + ctrl_type].helper[1] |= DIR_LEFT;
- break;
- case IPT_JOYSTICKLEFT_RIGHT:
- ctrl_type = CTRL_DIGITAL_JOYSTICK;
- control_info[field.player() * CTRL_COUNT + ctrl_type].type = "joy";
- control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
- control_info[field.player() * CTRL_COUNT + ctrl_type].ways = field.way();
- control_info[field.player() * CTRL_COUNT + ctrl_type].helper[1] |= DIR_RIGHT;
- break;
-
- case IPT_JOYSTICKRIGHT_UP:
- ctrl_type = CTRL_DIGITAL_JOYSTICK;
- control_info[field.player() * CTRL_COUNT + ctrl_type].type = "joy";
- control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
- control_info[field.player() * CTRL_COUNT + ctrl_type].ways = field.way();
- control_info[field.player() * CTRL_COUNT + ctrl_type].helper[2] |= DIR_UP;
- break;
- case IPT_JOYSTICKRIGHT_DOWN:
- ctrl_type = CTRL_DIGITAL_JOYSTICK;
- control_info[field.player() * CTRL_COUNT + ctrl_type].type = "joy";
- control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
- control_info[field.player() * CTRL_COUNT + ctrl_type].ways = field.way();
- control_info[field.player() * CTRL_COUNT + ctrl_type].helper[2] |= DIR_DOWN;
- break;
- case IPT_JOYSTICKRIGHT_LEFT:
- ctrl_type = CTRL_DIGITAL_JOYSTICK;
- control_info[field.player() * CTRL_COUNT + ctrl_type].type = "joy";
- control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
- control_info[field.player() * CTRL_COUNT + ctrl_type].ways = field.way();
- control_info[field.player() * CTRL_COUNT + ctrl_type].helper[2] |= DIR_LEFT;
- break;
- case IPT_JOYSTICKRIGHT_RIGHT:
- ctrl_type = CTRL_DIGITAL_JOYSTICK;
- control_info[field.player() * CTRL_COUNT + ctrl_type].type = "joy";
- control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
- control_info[field.player() * CTRL_COUNT + ctrl_type].ways = field.way();
- control_info[field.player() * CTRL_COUNT + ctrl_type].helper[2] |= DIR_RIGHT;
- break;
-
- // map analog inputs
- case IPT_AD_STICK_X:
- case IPT_AD_STICK_Y:
- case IPT_AD_STICK_Z:
- ctrl_analog = true;
- ctrl_type = CTRL_ANALOG_JOYSTICK;
- control_info[field.player() * CTRL_COUNT + ctrl_type].type = "stick";
- control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
- control_info[field.player() * CTRL_COUNT + ctrl_type].analog = true;
- break;
-
- case IPT_PADDLE:
- case IPT_PADDLE_V:
- ctrl_analog = true;
- ctrl_type = CTRL_ANALOG_PADDLE;
- control_info[field.player() * CTRL_COUNT + ctrl_type].type = "paddle";
- control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
- control_info[field.player() * CTRL_COUNT + ctrl_type].analog = true;
- break;
-
- case IPT_PEDAL:
- case IPT_PEDAL2:
- case IPT_PEDAL3:
- ctrl_analog = true;
- ctrl_type = CTRL_ANALOG_PEDAL;
- control_info[field.player() * CTRL_COUNT + ctrl_type].type = "pedal";
- control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
- control_info[field.player() * CTRL_COUNT + ctrl_type].analog = true;
- break;
-
- case IPT_LIGHTGUN_X:
- case IPT_LIGHTGUN_Y:
- ctrl_analog = true;
- ctrl_type = CTRL_ANALOG_LIGHTGUN;
- control_info[field.player() * CTRL_COUNT + ctrl_type].type = "lightgun";
- control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
- control_info[field.player() * CTRL_COUNT + ctrl_type].analog = true;
- break;
-
- case IPT_POSITIONAL:
- case IPT_POSITIONAL_V:
- ctrl_analog = true;
- ctrl_type = CTRL_ANALOG_POSITIONAL;
- control_info[field.player() * CTRL_COUNT + ctrl_type].type = "positional";
- control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
- control_info[field.player() * CTRL_COUNT + ctrl_type].analog = true;
- break;
-
- case IPT_DIAL:
- case IPT_DIAL_V:
- ctrl_analog = true;
- ctrl_type = CTRL_ANALOG_DIAL;
- control_info[field.player() * CTRL_COUNT + ctrl_type].type = "dial";
- control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
- control_info[field.player() * CTRL_COUNT + ctrl_type].analog = true;
- break;
-
- case IPT_TRACKBALL_X:
- case IPT_TRACKBALL_Y:
- ctrl_analog = true;
- ctrl_type = CTRL_ANALOG_TRACKBALL;
- control_info[field.player() * CTRL_COUNT + ctrl_type].type = "trackball";
- control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
- control_info[field.player() * CTRL_COUNT + ctrl_type].analog = true;
- break;
-
- case IPT_MOUSE_X:
- case IPT_MOUSE_Y:
- ctrl_analog = true;
- ctrl_type = CTRL_ANALOG_MOUSE;
- control_info[field.player() * CTRL_COUNT + ctrl_type].type = "mouse";
- control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
- control_info[field.player() * CTRL_COUNT + ctrl_type].analog = true;
- break;
-
- // map buttons
- case IPT_BUTTON1:
- case IPT_BUTTON2:
- case IPT_BUTTON3:
- case IPT_BUTTON4:
- case IPT_BUTTON5:
- case IPT_BUTTON6:
- case IPT_BUTTON7:
- case IPT_BUTTON8:
- case IPT_BUTTON9:
- case IPT_BUTTON10:
- case IPT_BUTTON11:
- case IPT_BUTTON12:
- case IPT_BUTTON13:
- case IPT_BUTTON14:
- case IPT_BUTTON15:
- case IPT_BUTTON16:
- ctrl_analog = false;
- if (control_info[field.player() * CTRL_COUNT + ctrl_type].type == nullptr)
- {
- control_info[field.player() * CTRL_COUNT + ctrl_type].type = "only_buttons";
- control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
- control_info[field.player() * CTRL_COUNT + ctrl_type].analog = false;
- }
- control_info[field.player() * CTRL_COUNT + ctrl_type].maxbuttons = std::max(control_info[field.player() * CTRL_COUNT + ctrl_type].maxbuttons, field.type() - IPT_BUTTON1 + 1);
- control_info[field.player() * CTRL_COUNT + ctrl_type].nbuttons++;
- if (!field.optional())
- control_info[field.player() * CTRL_COUNT + ctrl_type].reqbuttons++;
- break;
-
- // track maximum coin index
- case IPT_COIN1:
- case IPT_COIN2:
- case IPT_COIN3:
- case IPT_COIN4:
- case IPT_COIN5:
- case IPT_COIN6:
- case IPT_COIN7:
- case IPT_COIN8:
- case IPT_COIN9:
- case IPT_COIN10:
- case IPT_COIN11:
- case IPT_COIN12:
- ncoin = std::max(ncoin, field.type() - IPT_COIN1 + 1);
- break;
-
- // track presence of keypads and keyboards
- case IPT_KEYPAD:
- ctrl_type = CTRL_DIGITAL_KEYPAD;
- control_info[field.player() * CTRL_COUNT + ctrl_type].type = "keypad";
- control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
- control_info[field.player() * CTRL_COUNT + ctrl_type].nbuttons++;
- if (!field.optional())
- control_info[field.player() * CTRL_COUNT + ctrl_type].reqbuttons++;
- break;
-
- case IPT_KEYBOARD:
- ctrl_type = CTRL_DIGITAL_KEYBOARD;
- control_info[field.player() * CTRL_COUNT + ctrl_type].type = "keyboard";
- control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
- control_info[field.player() * CTRL_COUNT + ctrl_type].nbuttons++;
- if (!field.optional())
- control_info[field.player() * CTRL_COUNT + ctrl_type].reqbuttons++;
- break;
-
- // additional types
- case IPT_SERVICE:
- service = true;
- break;
-
- case IPT_TILT:
- tilt = true;
- break;
-
- default:
- if (field.type() > IPT_MAHJONG_FIRST && field.type() < IPT_MAHJONG_LAST)
- {
- ctrl_type = CTRL_DIGITAL_MAHJONG;
- control_info[field.player() * CTRL_COUNT + ctrl_type].type = "mahjong";
- control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
- control_info[field.player() * CTRL_COUNT + ctrl_type].nbuttons++;
- if (!field.optional())
- control_info[field.player() * CTRL_COUNT + ctrl_type].reqbuttons++;
- }
- else if (field.type() > IPT_HANAFUDA_FIRST && field.type() < IPT_HANAFUDA_LAST)
- {
- ctrl_type = CTRL_DIGITAL_HANAFUDA;
- control_info[field.player() * CTRL_COUNT + ctrl_type].type = "hanafuda";
- control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
- control_info[field.player() * CTRL_COUNT + ctrl_type].nbuttons++;
- if (!field.optional())
- control_info[field.player() * CTRL_COUNT + ctrl_type].reqbuttons++;
- }
- else if (field.type() > IPT_GAMBLING_FIRST && field.type() < IPT_GAMBLING_LAST)
- {
- ctrl_type = CTRL_DIGITAL_GAMBLING;
- control_info[field.player() * CTRL_COUNT + ctrl_type].type = "gambling";
- control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
- control_info[field.player() * CTRL_COUNT + ctrl_type].nbuttons++;
- if (!field.optional())
- control_info[field.player() * CTRL_COUNT + ctrl_type].reqbuttons++;
- }
- break;
- }
-
- if (ctrl_analog)
- {
- // get the analog stats
- if (field.minval() != 0)
- control_info[field.player() * CTRL_COUNT + ctrl_type].min = field.minval();
- if (field.maxval() != 0)
- control_info[field.player() * CTRL_COUNT + ctrl_type].max = field.maxval();
- if (field.sensitivity() != 0)
- control_info[field.player() * CTRL_COUNT + ctrl_type].sensitivity = field.sensitivity();
- if (field.delta() != 0)
- control_info[field.player() * CTRL_COUNT + ctrl_type].keydelta = field.delta();
- if (field.analog_reverse() != 0)
- control_info[field.player() * CTRL_COUNT + ctrl_type].reverse = true;
- }
- }
- }
-
- // Clean-up those entries, if any, where buttons were defined in a separate port than the actual controller they belong to.
- // This is quite often the case, especially for arcades where controls can be easily mapped to separate input ports on PCB.
- // If such situation would only happen for joystick, it would be possible to work it around by initializing differently
- // ctrl_type above, but it is quite common among analog inputs as well (for instance, this is the tipical situation
- // for lightguns) and therefore we really need this separate loop.
- for (int i = 0; i < CTRL_PCOUNT; i++)
- {
- bool fix_done = false;
- for (int j = 1; j < CTRL_COUNT; j++)
- if (control_info[i * CTRL_COUNT].type != nullptr && control_info[i * CTRL_COUNT + j].type != nullptr && !fix_done)
- {
- control_info[i * CTRL_COUNT + j].nbuttons += control_info[i * CTRL_COUNT].nbuttons;
- control_info[i * CTRL_COUNT + j].reqbuttons += control_info[i * CTRL_COUNT].reqbuttons;
- control_info[i * CTRL_COUNT + j].maxbuttons = std::max(control_info[i * CTRL_COUNT + j].maxbuttons, control_info[i * CTRL_COUNT].maxbuttons);
-
- memset(&control_info[i * CTRL_COUNT], 0, sizeof(control_info[0]));
- fix_done = true;
- }
- }
-
- // Output the input info
- // First basic info
- out << "\t\t<input";
- out << util::string_format(" players=\"%d\"", nplayer);
- if (ncoin != 0)
- out << util::string_format(" coins=\"%d\"", ncoin);
- if (service)
- out << util::string_format(" service=\"yes\"");
- if (tilt)
- out << util::string_format(" tilt=\"yes\"");
- out << ">\n";
-
- // Then controller specific ones
- for (auto & elem : control_info)
- if (elem.type != nullptr)
- {
- //printf("type %s - player %d - buttons %d\n", elem.type, elem.player, elem.nbuttons);
- if (elem.analog)
- {
- out << util::string_format("\t\t\t<control type=\"%s\"", normalize_string(elem.type));
- if (nplayer > 1)
- out << util::string_format(" player=\"%d\"", elem.player);
- if (elem.nbuttons > 0)
- {
- out << util::string_format(" buttons=\"%d\"", strcmp(elem.type, "stick") ? elem.nbuttons : elem.maxbuttons);
- if (elem.reqbuttons < elem.nbuttons)
- out << util::string_format(" reqbuttons=\"%d\"", elem.reqbuttons);
- }
- if (elem.min != 0 || elem.max != 0)
- out << util::string_format(" minimum=\"%d\" maximum=\"%d\"", elem.min, elem.max);
- if (elem.sensitivity != 0)
- out << util::string_format(" sensitivity=\"%d\"", elem.sensitivity);
- if (elem.keydelta != 0)
- out << util::string_format(" keydelta=\"%d\"", elem.keydelta);
- if (elem.reverse)
- out << " reverse=\"yes\"";
-
- out << "/>\n";
- }
- else
- {
- if (elem.helper[1] == 0 && elem.helper[2] != 0) { elem.helper[1] = elem.helper[2]; elem.helper[2] = 0; }
- if (elem.helper[0] == 0 && elem.helper[1] != 0) { elem.helper[0] = elem.helper[1]; elem.helper[1] = 0; }
- if (elem.helper[1] == 0 && elem.helper[2] != 0) { elem.helper[1] = elem.helper[2]; elem.helper[2] = 0; }
- const char *joys = (elem.helper[2] != 0) ? "triple" : (elem.helper[1] != 0) ? "double" : "";
- out << util::string_format("\t\t\t<control type=\"%s%s\"", joys, normalize_string(elem.type));
- if (nplayer > 1)
- out << util::string_format(" player=\"%d\"", elem.player);
- if (elem.nbuttons > 0)
- {
- out << util::string_format(" buttons=\"%d\"", strcmp(elem.type, "joy") ? elem.nbuttons : elem.maxbuttons);
- if (elem.reqbuttons < elem.nbuttons)
- out << util::string_format(" reqbuttons=\"%d\"", elem.reqbuttons);
- }
- for (int lp = 0; lp < 3 && elem.helper[lp] != 0; lp++)
- {
- const char *plural = (lp==2) ? "3" : (lp==1) ? "2" : "";
- const char *ways;
- std::string helper;
- switch (elem.helper[lp] & (DIR_UP | DIR_DOWN | DIR_LEFT | DIR_RIGHT))
- {
- case DIR_UP | DIR_DOWN | DIR_LEFT | DIR_RIGHT:
- helper = string_format("%d", (elem.ways == 0) ? 8 : elem.ways);
- ways = helper.c_str();
- break;
- case DIR_LEFT | DIR_RIGHT:
- ways = "2";
- break;
- case DIR_UP | DIR_DOWN:
- ways = "vertical2";
- break;
- case DIR_UP:
- case DIR_DOWN:
- case DIR_LEFT:
- case DIR_RIGHT:
- ways = "1";
- break;
- case DIR_UP | DIR_DOWN | DIR_LEFT:
- case DIR_UP | DIR_DOWN | DIR_RIGHT:
- case DIR_UP | DIR_LEFT | DIR_RIGHT:
- case DIR_DOWN | DIR_LEFT | DIR_RIGHT:
- ways = (elem.ways == 4) ? "3 (half4)" : "5 (half8)";
- break;
- default:
- ways = "strange2";
- break;
- }
- out << util::string_format(" ways%s=\"%s\"", plural, ways);
- }
- out << "/>\n";
- }
- }
-
- out << "\t\t</input>\n";
-}
-
-
-//-------------------------------------------------
-// output_switches - print the configurations or
-// DIP switch settings
-//-------------------------------------------------
-
-void output_switches(std::ostream &out, const ioport_list &portlist, const char *root_tag, int type, const char *outertag, const char *loctag, const char *innertag)
-{
- // iterate looking for DIP switches
- for (auto &port : portlist)
- for (ioport_field const &field : port.second->fields())
- if (field.type() == type)
- {
- std::string newtag(port.second->tag()), oldtag(":");
- newtag = newtag.substr(newtag.find(oldtag.append(root_tag)) + oldtag.length());
-
- // output the switch name information
- std::string const normalized_field_name(normalize_string(field.name()));
- std::string const normalized_newtag(normalize_string(newtag.c_str()));
- out << util::string_format("\t\t<%s name=\"%s\" tag=\"%s\" mask=\"%u\">\n", outertag, normalized_field_name.c_str(), normalized_newtag.c_str(), field.mask());
- if (!field.condition().none())
- output_ioport_condition(out, field.condition(), 3);
-
- // loop over locations
- for (ioport_diplocation const &diploc : field.diplocations())
- {
- out << util::string_format("\t\t\t<%s name=\"%s\" number=\"%u\"", loctag, normalize_string(diploc.name()), diploc.number());
- if (diploc.inverted())
- out << " inverted=\"yes\"";
- out << "/>\n";
- }
-
- // loop over settings
- for (ioport_setting const &setting : field.settings())
- {
- out << util::string_format("\t\t\t<%s name=\"%s\" value=\"%u\"", innertag, normalize_string(setting.name()), setting.value());
- if (setting.value() == field.defvalue())
- out << " default=\"yes\"";
- if (setting.condition().none())
- {
- out << "/>\n";
- }
- else
- {
- out << ">\n";
- output_ioport_condition(out, setting.condition(), 4);
- out << util::string_format("\t\t\t</%s>\n", innertag);
- }
- }
-
- // terminate the switch entry
- out << util::string_format("\t\t</%s>\n", outertag);
- }
-}
-
-//-------------------------------------------------
-// output_ports - print the structure of input
-// ports in the driver
-//-------------------------------------------------
-void output_ports(std::ostream &out, const ioport_list &portlist)
-{
- // cycle through ports
- for (auto &port : portlist)
- {
- out << util::string_format("\t\t<port tag=\"%s\">\n", normalize_string(port.second->tag()));
- for (ioport_field const &field : port.second->fields())
- {
- if (field.is_analog())
- out << util::string_format("\t\t\t<analog mask=\"%u\"/>\n", field.mask());
- }
- out << util::string_format("\t\t</port>\n");
- }
-
-}
-
-//-------------------------------------------------
-// output_adjusters - print the Analog
-// Adjusters for a game
-//-------------------------------------------------
-
-void output_adjusters(std::ostream &out, const ioport_list &portlist)
-{
- // iterate looking for Adjusters
- for (auto &port : portlist)
- for (ioport_field const &field : port.second->fields())
- if (field.type() == IPT_ADJUSTER)
- {
- out << util::string_format("\t\t<adjuster name=\"%s\" default=\"%d\"/>\n", normalize_string(field.name()), field.defvalue());
- }
-}
-
-
-//-------------------------------------------------
-// output_driver - print driver status
-//-------------------------------------------------
-
-void output_driver(std::ostream &out, game_driver const &driver, device_t::feature_type unemulated, device_t::feature_type imperfect)
-{
- out << "\t\t<driver";
-
- /*
- The status entry is an hint for frontend authors to select working
- and not working games without the need to know all the other status
- entries. Games marked as status=good are perfectly emulated, games
- marked as status=imperfect are emulated with only some minor issues,
- games marked as status=preliminary don't work or have major
- emulation problems.
- */
-
- u32 const flags = driver.flags;
- bool const machine_preliminary(flags & (machine_flags::NOT_WORKING | machine_flags::MECHANICAL));
- bool const unemulated_preliminary(unemulated & (device_t::feature::PALETTE | device_t::feature::GRAPHICS | device_t::feature::SOUND | device_t::feature::KEYBOARD));
- bool const imperfect_preliminary((unemulated | imperfect) & device_t::feature::PROTECTION);
-
- if (machine_preliminary || unemulated_preliminary || imperfect_preliminary)
- out << " status=\"preliminary\"";
- else if (imperfect)
- out << " status=\"imperfect\"";
- else
- out << " status=\"good\"";
-
- if (flags & machine_flags::NOT_WORKING)
- out << " emulation=\"preliminary\"";
- else
- out << " emulation=\"good\"";
-
- if (flags & machine_flags::NO_COCKTAIL)
- out << " cocktail=\"preliminary\"";
-
- if (flags & machine_flags::SUPPORTS_SAVE)
- out << " savestate=\"supported\"";
- else
- out << " savestate=\"unsupported\"";
-
- out << "/>\n";
-}
-
-
-//-------------------------------------------------
-// output_features - print emulation features of
-//
-//-------------------------------------------------
-
-void output_features(std::ostream &out, device_type type, device_t::feature_type unemulated, device_t::feature_type imperfect)
-{
- static constexpr std::pair<device_t::feature_type, char const *> features[] = {
- { device_t::feature::PROTECTION, "protection" },
- { device_t::feature::TIMING, "timing" },
- { device_t::feature::GRAPHICS, "graphics" },
- { device_t::feature::PALETTE, "palette" },
- { device_t::feature::SOUND, "sound" },
- { device_t::feature::CAPTURE, "capture" },
- { device_t::feature::CAMERA, "camera" },
- { device_t::feature::MICROPHONE, "microphone" },
- { device_t::feature::CONTROLS, "controls" },
- { device_t::feature::KEYBOARD, "keyboard" },
- { device_t::feature::MOUSE, "mouse" },
- { device_t::feature::MEDIA, "media" },
- { device_t::feature::DISK, "disk" },
- { device_t::feature::PRINTER, "printer" },
- { device_t::feature::TAPE, "tape" },
- { device_t::feature::PUNCH, "punch" },
- { device_t::feature::DRUM, "drum" },
- { device_t::feature::ROM, "rom" },
- { device_t::feature::COMMS, "comms" },
- { device_t::feature::LAN, "lan" },
- { device_t::feature::WAN, "wan" } };
-
- device_t::feature_type const flags(type.unemulated_features() | type.imperfect_features() | unemulated | imperfect);
- for (auto const &feature : features)
- {
- if (flags & feature.first)
- {
- out << util::string_format("\t\t<feature type=\"%s\"", feature.second);
- if (type.unemulated_features() & feature.first)
- {
- out << " status=\"unemulated\"";
- }
- else
- {
- if (type.imperfect_features() & feature.first)
- out << " status=\"imperfect\"";
- if (unemulated & feature.first)
- out << " overall=\"unemulated\"";
- else if ((~type.imperfect_features() & imperfect) & feature.first)
- out << " overall=\"imperfect\"";
- }
- out << "/>\n";
- }
- }
-}
-
-
-//-------------------------------------------------
-// output_images - prints m_output all info on
-// image devices
-//-------------------------------------------------
-
-void output_images(std::ostream &out, device_t &device, const char *root_tag)
-{
- for (const device_image_interface &imagedev : image_interface_iterator(device))
- {
- if (strcmp(imagedev.device().tag(), device.tag()))
- {
- bool loadable = imagedev.user_loadable();
- std::string newtag(imagedev.device().tag()), oldtag(":");
- newtag = newtag.substr(newtag.find(oldtag.append(root_tag)) + oldtag.length());
-
- // print m_output device type
- out << util::string_format("\t\t<device type=\"%s\"", normalize_string(imagedev.image_type_name()));
-
- // does this device have a tag?
- if (imagedev.device().tag())
- out << util::string_format(" tag=\"%s\"", normalize_string(newtag.c_str()));
-
- // is this device available as media switch?
- if (!loadable)
- out << " fixed_image=\"1\"";
-
- // is this device mandatory?
- if (imagedev.must_be_loaded())
- out << " mandatory=\"1\"";
-
- if (imagedev.image_interface() && imagedev.image_interface()[0])
- out << util::string_format(" interface=\"%s\"", normalize_string(imagedev.image_interface()));
-
- // close the XML tag
- out << ">\n";
-
- if (loadable)
- {
- char const *const name = imagedev.instance_name().c_str();
- char const *const shortname = imagedev.brief_instance_name().c_str();
-
- out << "\t\t\t<instance";
- out << util::string_format(" name=\"%s\"", normalize_string(name));
- out << util::string_format(" briefname=\"%s\"", normalize_string(shortname));
- out << "/>\n";
-
- char const *extensions(imagedev.file_extensions());
- while (extensions)
- {
- char const *end(extensions);
- while (*end && (',' != *end))
- ++end;
- out << util::string_format("\t\t\t<extension name=\"%s\"/>\n", normalize_string(std::string(extensions, end).c_str()));
- extensions = *end ? (end + 1) : nullptr;
- }
- }
- out << "\t\t</device>\n";
- }
- }
-}
-
-
-//-------------------------------------------------
-// output_slots - prints all info about slots
-//-------------------------------------------------
-
-void output_slots(std::ostream &out, machine_config &config, device_t &device, const char *root_tag, device_type_set *devtypes)
-{
- for (device_slot_interface &slot : slot_interface_iterator(device))
- {
- // shall we list fixed slots as non-configurable?
- bool const listed(!slot.fixed() && strcmp(slot.device().tag(), device.tag()));
-
- if (devtypes || listed)
- {
- machine_config::token const tok(config.begin_configuration(slot.device()));
- std::string newtag(slot.device().tag()), oldtag(":");
- newtag = newtag.substr(newtag.find(oldtag.append(root_tag)) + oldtag.length());
-
- // print m_output device type
- if (listed)
- out << util::string_format("\t\t<slot name=\"%s\">\n", normalize_string(newtag.c_str()));
-
- for (auto &option : slot.option_list())
- {
- if (devtypes || (listed && option.second->selectable()))
- {
- device_t *const dev = config.device_add("_dummy", option.second->devtype(), option.second->clock());
- if (!dev->configured())
- dev->config_complete();
-
- if (devtypes)
- for (device_t &subdevice : device_iterator(*dev)) devtypes->insert(&subdevice.type());
-
- if (listed && option.second->selectable())
- {
- out << util::string_format("\t\t\t<slotoption name=\"%s\"", normalize_string(option.second->name()));
- out << util::string_format(" devname=\"%s\"", normalize_string(dev->shortname()));
- if (slot.default_option() != nullptr && strcmp(slot.default_option(), option.second->name())==0)
- out << " default=\"yes\"";
- out << "/>\n";
- }
-
- config.device_remove("_dummy");
- }
- }
-
- if (listed)
- out << "\t\t</slot>\n";
- }
- }
-}
-
-
-//-------------------------------------------------
-// output_software_list - print the information
-// for all known software lists for this system
-//-------------------------------------------------
-
-void output_software_list(std::ostream &out, device_t &root)
-{
- for (const software_list_device &swlist : software_list_device_iterator(root))
- {
- out << util::string_format("\t\t<softwarelist name=\"%s\" status=\"%s\"", normalize_string(swlist.list_name().c_str()), (swlist.list_type() == SOFTWARE_LIST_ORIGINAL_SYSTEM) ? "original" : "compatible");
- if (swlist.filter())
- out << util::string_format(" filter=\"%s\"", normalize_string(swlist.filter()));
- out << "/>\n";
- }
-}
-
-
-
-//-------------------------------------------------
-// output_ramoptions - prints m_output all RAM
-// options for this system
-//-------------------------------------------------
-
-void output_ramoptions(std::ostream &out, device_t &root)
-{
- for (const ram_device &ram : ram_device_iterator(root, 1))
- {
- if (!std::strcmp(ram.tag(), ":" RAM_TAG))
- {
- uint32_t const defsize(ram.default_size());
- bool havedefault(false);
- for (ram_device::extra_option const &option : ram.extra_options())
- {
- if (defsize == option.second)
- {
- assert(!havedefault);
- havedefault = true;
- out << util::string_format("\t\t<ramoption name=\"%s\" default=\"yes\">%u</ramoption>\n", normalize_string(option.first.c_str()), option.second);
- }
- else
- {
- out << util::string_format("\t\t<ramoption name=\"%s\">%u</ramoption>\n", normalize_string(option.first.c_str()), option.second);
- }
- }
- if (!havedefault)
- out << util::string_format("\t\t<ramoption name=\"%s\" default=\"yes\">%u</ramoption>\n", ram.default_size_string(), defsize);
- break;
- }
- }
-}
-
-
-//-------------------------------------------------
-// get_merge_name - get the rom name from a
-// parent set
-//-------------------------------------------------
-
-const char *get_merge_name(driver_enumerator &drivlist, const game_driver &driver, util::hash_collection const &romhashes)
-{
- // walk the parent chain
- for (int clone_of = drivlist.find(driver.parent); 0 <= clone_of; clone_of = drivlist.find(drivlist.driver(clone_of).parent))
- {
- // look in the parent's ROMs
- for (romload::region const &pregion : romload::entries(drivlist.driver(clone_of).rom).get_regions())
- {
- for (romload::file const &prom : pregion.get_files())
- {
- // stop when we find a match
- util::hash_collection const phashes(prom.get_hashdata());
- if (!phashes.flag(util::hash_collection::FLAG_NO_DUMP) && (romhashes == phashes))
- return prom.get_name();
- }
- }
- }
-
- return nullptr;
-}
-
-
-//-------------------------------------------------
-// device_type_compare::operator()
-//-------------------------------------------------
-
-bool device_type_compare::operator()(const std::add_pointer_t<device_type> &lhs, const std::add_pointer_t<device_type> &rhs) const
-{
- return strcmp(lhs->shortname(), rhs->shortname()) < 0;
-}
-
-}
diff --git a/docs/release/src/frontend/mame/language.cpp b/docs/release/src/frontend/mame/language.cpp
new file mode 100644
index 00000000000..ee149a63e3b
--- /dev/null
+++ b/docs/release/src/frontend/mame/language.cpp
@@ -0,0 +1,185 @@
+// license:BSD-3-Clause
+// copyright-holders:Vas Crabb
+/***************************************************************************
+
+ language.cpp
+
+ Multi-language support.
+
+***************************************************************************/
+
+#include "emu.h"
+#include "emuopts.h"
+
+#include <cstring>
+#include <memory>
+#include <new>
+#include <unordered_map>
+
+
+namespace {
+
+constexpr uint32_t MO_MAGIC = 0x950412de;
+constexpr uint32_t MO_MAGIC_REVERSED = 0xde120495;
+
+struct cstr_hash
+{
+ size_t operator()(char const *s) const noexcept
+ {
+ // Bernstein string hash
+ size_t result(5381);
+ while (*s)
+ result = ((result << 5) + result) + u8(*s++);
+ return result;
+ }
+};
+
+struct cstr_compare
+{
+ size_t operator()(char const *x, char const *y) const noexcept
+ {
+ return !std::strcmp(x, y);
+ }
+};
+
+std::unique_ptr<u32 []> f_translation_data;
+std::unordered_map<char const *, char const *, cstr_hash, cstr_compare> f_translation_map;
+
+} // anonymous namespace
+
+
+char const *lang_translate(char const *word)
+{
+ auto const found = f_translation_map.find(word);
+ return (f_translation_map.end() != found) ? found->second : word;
+}
+
+
+void load_translation(emu_options &m_options)
+{
+ f_translation_data.reset();
+ f_translation_map.clear();
+
+ std::string name = m_options.language();
+ if (name.empty())
+ return;
+
+ strreplace(name, " ", "_");
+ strreplace(name, "(", "");
+ strreplace(name, ")", "");
+
+ // MESSUI: See if language file exists. If not, try English, see if that exists. If not, use inbuilt default.
+ emu_file file(m_options.language_path(), OPEN_FLAG_READ);
+ if (file.open(name.c_str(), PATH_SEPARATOR "strings.mo") != osd_file::error::NONE)
+ {
+ osd_printf_verbose("Error opening translation file %s\n", name);
+ name = "English";
+ if (file.open(name.c_str(), PATH_SEPARATOR "strings.mo") != osd_file::error::NONE)
+ {
+ osd_printf_verbose("Error opening translation file %s\n", name);
+ return;
+ }
+ }
+
+ u64 const size = file.size();
+ if (20 > size)
+ {
+ file.close();
+ osd_printf_error("Error reading translation file %s: %u-byte file is too small to contain translation data\n", name, size);
+ return;
+ }
+
+ f_translation_data.reset(new (std::nothrow) uint32_t [(size + 3) / 4]);
+ if (!f_translation_data)
+ {
+ file.close();
+ osd_printf_error("Failed to allocate %u bytes to load translation data file %s\n", size, name);
+ return;
+ }
+
+ auto const read = file.read(f_translation_data.get(), size);
+ file.close();
+ if (read != size)
+ {
+ osd_printf_error("Error reading translation file %s: requested %u bytes but got %u bytes\n", name, size, read);
+ f_translation_data.reset();
+ return;
+ }
+
+ if ((f_translation_data[0] != MO_MAGIC) && (f_translation_data[0] != MO_MAGIC_REVERSED))
+ {
+ osd_printf_error("Error reading translation file %s: unrecognized magic number 0x%08X\n", name, f_translation_data[0]);
+ f_translation_data.reset();
+ return;
+ }
+
+ auto fetch_word =
+ [reversed = f_translation_data[0] == MO_MAGIC_REVERSED, words = f_translation_data.get()] (size_t offset)
+ {
+ return reversed ? swapendian_int32(words[offset]) : words[offset];
+ };
+
+ // FIXME: check major/minor version number
+
+ if ((fetch_word(3) % 4) || (fetch_word(4) % 4))
+ {
+ osd_printf_error("Error reading translation file %s: table offsets %u and %u are not word-aligned\n", name, fetch_word(3), fetch_word(4));
+ f_translation_data.reset();
+ return;
+ }
+
+ u32 const number_of_strings = fetch_word(2);
+ u32 const original_table_offset = fetch_word(3) >> 2;
+ u32 const translation_table_offset = fetch_word(4) >> 2;
+ if ((4 * (original_table_offset + (u64(number_of_strings) * 2))) > size)
+ {
+ osd_printf_error("Error reading translation file %s: %u-entry original string table at offset %u extends past end of %u-byte file\n", name, number_of_strings, fetch_word(3), size);
+ f_translation_data.reset();
+ return;
+ }
+ if ((4 * (translation_table_offset + (u64(number_of_strings) * 2))) > size)
+ {
+ osd_printf_error("Error reading translation file %s: %u-entry translated string table at offset %u extends past end of %u-byte file\n", name, number_of_strings, fetch_word(4), size);
+ f_translation_data.reset();
+ return;
+ }
+ osd_printf_verbose("Reading translation file %s: %u strings, original table at word offset %u, translated table at word offset %u\n", name, number_of_strings, original_table_offset, translation_table_offset);
+
+ char const *const data = reinterpret_cast<char const *>(f_translation_data.get());
+ for (u32 i = 1; number_of_strings > i; ++i)
+ {
+ u32 const original_length = fetch_word(original_table_offset + (2 * i));
+ u32 const original_offset = fetch_word(original_table_offset + (2 * i) + 1);
+ if ((original_length + original_offset) >= size)
+ {
+ osd_printf_error("Error reading translation file %s: %u-byte original string %u at offset %u extends past end of %u-byte file\n", name, original_length, i, original_offset, size);
+ continue;
+ }
+ if (data[original_length + original_offset])
+ {
+ osd_printf_error("Error reading translation file %s: %u-byte original string %u at offset %u is not correctly NUL-terminated\n", name, original_length, i, original_offset);
+ continue;
+ }
+
+ u32 const translation_length = fetch_word(translation_table_offset + (2 * i));
+ u32 const translation_offset = fetch_word(translation_table_offset + (2 * i) + 1);
+ if ((translation_length + translation_offset) >= size)
+ {
+ osd_printf_error("Error reading translation file %s: %u-byte translated string %u at offset %u extends past end of %u-byte file\n", name, translation_length, i, translation_offset, size);
+ continue;
+ }
+ if (data[translation_length + translation_offset])
+ {
+ osd_printf_error("Error reading translation file %s: %u-byte translated string %u at offset %u is not correctly NUL-terminated\n", name, translation_length, i, translation_offset);
+ continue;
+ }
+
+ char const *const original = &data[original_offset];
+ char const *const translation = &data[translation_offset];
+ auto const ins = f_translation_map.emplace(original, translation);
+ if (!ins.second)
+ osd_printf_warning("Loading translation file %s: translation %u '%s'='%s' conflicts with previous translation '%s'='%s'\n", name, i, original, translation, ins.first->first, ins.first->second);
+ }
+
+ osd_printf_verbose("Loaded %u translations from file %s\n", f_translation_map.size(), name);
+}
diff --git a/docs/release/src/hbmame/bus/neogeo/banked_cart.cpp b/docs/release/src/hbmame/bus/neogeo/banked_cart.cpp
index 2228e75c72f..c8802f8f333 100644
--- a/docs/release/src/hbmame/bus/neogeo/banked_cart.cpp
+++ b/docs/release/src/hbmame/bus/neogeo/banked_cart.cpp
@@ -99,7 +99,7 @@ void neogeo_banked_cart_device::init_banks(void)
void neogeo_banked_cart_device::install_banks(running_machine& machine, cpu_device* maincpu, uint8_t* region, uint32_t region_size)
{
maincpu->space(AS_PROGRAM).install_read_bank(0x200000, 0x2fffff, "cartridge");
- maincpu->space(AS_PROGRAM).install_write_handler(0x2ffff0, 0x2fffff, write16_delegate(FUNC(neogeo_banked_cart_device::main_cpu_bank_select_w),this));
+ maincpu->space(AS_PROGRAM).install_write_handler(0x2ffff0, 0x2fffff, write16_delegate(*this, FUNC(neogeo_banked_cart_device::main_cpu_bank_select_w)));
m_bank_cartridge = machine.root_device().membank("cartridge");
m_region = region;
diff --git a/docs/release/src/hbmame/bus/neogeo/prot.cpp b/docs/release/src/hbmame/bus/neogeo/prot.cpp
index 27af99cca04..4dc19f14d26 100644
--- a/docs/release/src/hbmame/bus/neogeo/prot.cpp
+++ b/docs/release/src/hbmame/bus/neogeo/prot.cpp
@@ -144,11 +144,11 @@ void ngbootleg_prot_device::install_kof10th_protection (cpu_device* maincpu, neo
m_fixedrom = fixedrom;
m_bankdev = bankdev;
- maincpu->space(AS_PROGRAM).install_read_handler(0x0e0000, 0x0fffff, read16_delegate(FUNC(ngbootleg_prot_device::kof10th_RAM2_r),this));
+ maincpu->space(AS_PROGRAM).install_read_handler(0x0e0000, 0x0fffff, read16_delegate(*this, FUNC(ngbootleg_prot_device::kof10th_RAM2_r)));
- maincpu->space(AS_PROGRAM).install_read_handler(0x2fe000, 0x2fffff, read16_delegate(FUNC(ngbootleg_prot_device::kof10th_RAMB_r),this));
- maincpu->space(AS_PROGRAM).install_write_handler(0x200000, 0x23ffff, write16_delegate(FUNC(ngbootleg_prot_device::kof10th_custom_w),this));
- maincpu->space(AS_PROGRAM).install_write_handler(0x240000, 0x2fffff, write16_delegate(FUNC(ngbootleg_prot_device::kof10th_bankswitch_w),this));
+ maincpu->space(AS_PROGRAM).install_read_handler(0x2fe000, 0x2fffff, read16_delegate(*this, FUNC(ngbootleg_prot_device::kof10th_RAMB_r)));
+ maincpu->space(AS_PROGRAM).install_write_handler(0x200000, 0x23ffff, write16_delegate(*this, FUNC(ngbootleg_prot_device::kof10th_custom_w)));
+ maincpu->space(AS_PROGRAM).install_write_handler(0x240000, 0x2fffff, write16_delegate(*this, FUNC(ngbootleg_prot_device::kof10th_bankswitch_w)));
memcpy(m_cartridge_ram2, cpurom + 0xe0000, 0x20000);
// HACK: only save this at device_start (not allowed later)
@@ -433,7 +433,7 @@ void ngbootleg_prot_device::patch_cthd2003(cpu_device* maincpu, neogeo_banked_ca
uint16_t *mem16 = (uint16_t *)cpurom;
/* special ROM banking handler */
- maincpu->space(AS_PROGRAM).install_write_handler(0x2ffff0, 0x2fffff, write16_delegate(FUNC(ngbootleg_prot_device::cthd2003_bankswitch_w),this));
+ maincpu->space(AS_PROGRAM).install_write_handler(0x2ffff0, 0x2fffff, write16_delegate(*this, FUNC(ngbootleg_prot_device::cthd2003_bankswitch_w)));
m_bankdev = bankdev;
// theres still a problem on the character select screen but it seems to be related to cpu core timing issues,
@@ -660,8 +660,8 @@ void ngbootleg_prot_device::install_ms5plus_protection(cpu_device* maincpu, neog
{
// special ROM banking handler / additional protection
maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2ffff0, 0x2fffff,
- read16_delegate(FUNC(ngbootleg_prot_device::mslug5_prot_r),this),
- write16_delegate(FUNC(ngbootleg_prot_device::ms5plus_bankswitch_w),this));
+ read16_delegate(*this, FUNC(ngbootleg_prot_device::mslug5_prot_r)),
+ write16_delegate(*this, FUNC(ngbootleg_prot_device::ms5plus_bankswitch_w)));
m_bankdev = bankdev;
}
@@ -855,9 +855,9 @@ void ngbootleg_prot_device::kf2k3bl_install_protection(cpu_device* maincpu, neog
{
m_mainrom = cpurom;
- maincpu->space(AS_PROGRAM).install_read_handler(0x58196, 0x58197, read16_delegate(FUNC(ngbootleg_prot_device::kof2003_overlay_r),this) );
+ maincpu->space(AS_PROGRAM).install_read_handler(0x58196, 0x58197, read16_delegate(*this, FUNC(ngbootleg_prot_device::kof2003_overlay_r)));
- maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2fe000, 0x2fffff, read16_delegate(FUNC(ngbootleg_prot_device::kof2003_r),this), write16_delegate(FUNC(ngbootleg_prot_device::kof2003_w),this) );
+ maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2fe000, 0x2fffff, read16_delegate(*this, FUNC(ngbootleg_prot_device::kof2003_r)), write16_delegate(*this, FUNC(ngbootleg_prot_device::kof2003_w)));
m_bankdev = bankdev;
}
@@ -888,8 +888,8 @@ void ngbootleg_prot_device::kf2k3pl_install_protection(cpu_device* maincpu, neog
{
m_mainrom = cpurom;
maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2fe000, 0x2fffff,
- read16_delegate(FUNC(ngbootleg_prot_device::kof2003_r),this),
- write16_delegate(FUNC(ngbootleg_prot_device::kof2003p_w),this) );
+ read16_delegate(*this, FUNC(ngbootleg_prot_device::kof2003_r)),
+ write16_delegate(*this, FUNC(ngbootleg_prot_device::kof2003p_w)));
m_bankdev = bankdev;
}
@@ -1026,7 +1026,7 @@ READ16_MEMBER(kog_prot_device::read_jumper)
void kog_prot_device::kog_install_protection(cpu_device* maincpu)
{
/* overlay cartridge ROM */
- maincpu->space(AS_PROGRAM).install_read_handler(0x0ffffe, 0x0fffff, read16_delegate(FUNC(kog_prot_device::read_jumper), this));
+ maincpu->space(AS_PROGRAM).install_read_handler(0x0ffffe, 0x0fffff, read16_delegate(*this, FUNC(kog_prot_device::read_jumper)));
}
@@ -1869,8 +1869,8 @@ void fatfury2_prot_device::fatfury2_install_protection(cpu_device* maincpu, neog
/* the protection involves reading and writing addresses in the */
/* 0x2xxxxx range. There are several checks all around the code. */
maincpu->space(AS_PROGRAM).install_readwrite_handler(0x200000, 0x2fffff,
- read16_delegate(FUNC(fatfury2_prot_device::fatfury2_protection_16_r),this),
- write16_delegate(FUNC(fatfury2_prot_device::fatfury2_protection_16_w),this));
+ read16_delegate(*this, FUNC(fatfury2_prot_device::fatfury2_protection_16_r)),
+ write16_delegate(*this, FUNC(fatfury2_prot_device::fatfury2_protection_16_w)));
m_bankdev = bankdev;
m_fatfury2_prot_data = 0;
@@ -2061,8 +2061,8 @@ WRITE16_MEMBER( kof98_prot_device::kof98_prot_w )
void kof98_prot_device::install_kof98_protection(cpu_device* maincpu)
{
/* when 0x20aaaa contains 0x0090 (word) then 0x100 (normally the neogeo header) should return 0x00c200fd worked out using real hw */
- maincpu->space(AS_PROGRAM).install_read_handler(0x00100, 0x00103, read16_delegate(FUNC(kof98_prot_device::kof98_prot_r),this));
- maincpu->space(AS_PROGRAM).install_write_handler(0x20aaaa, 0x20aaab, write16_delegate(FUNC(kof98_prot_device::kof98_prot_w),this));
+ maincpu->space(AS_PROGRAM).install_read_handler(0x00100, 0x00103, read16_delegate(*this, FUNC(kof98_prot_device::kof98_prot_r)));
+ maincpu->space(AS_PROGRAM).install_write_handler(0x20aaaa, 0x20aaab, write16_delegate(*this, FUNC(kof98_prot_device::kof98_prot_w)));
}
/***********************************************************************************************************************************/
@@ -2153,8 +2153,8 @@ READ16_MEMBER( mslugx_prot_device::mslugx_protection_16_r )
void mslugx_prot_device::mslugx_install_protection(cpu_device* maincpu)
{
maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2fffe0, 0x2fffef,
- read16_delegate(FUNC(mslugx_prot_device::mslugx_protection_16_r),this),
- write16_delegate(FUNC(mslugx_prot_device::mslugx_protection_16_w),this));
+ read16_delegate(*this, FUNC(mslugx_prot_device::mslugx_protection_16_r)),
+ write16_delegate(*this, FUNC(mslugx_prot_device::mslugx_protection_16_w)));
}
/***********************************************************************************************************************************/
@@ -2316,8 +2316,8 @@ void pvc_prot_device::install_pvc_protection(cpu_device* maincpu, neogeo_banked_
{
m_bankdev = bankdev;
maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2fe000, 0x2fffff,
- read16_delegate(FUNC(pvc_prot_device::pvc_prot_r),this),
- write16_delegate(FUNC(pvc_prot_device::pvc_prot_w),this));
+ read16_delegate(*this, FUNC(pvc_prot_device::pvc_prot_r)),
+ write16_delegate(*this, FUNC(pvc_prot_device::pvc_prot_w)));
}
@@ -2596,8 +2596,8 @@ void sbp_prot_device::sbp_install_protection(cpu_device* maincpu, uint8_t* cpuro
// there are also writes to 0x1080..
//
// other stuff going on as well tho, the main overlay is still missing, and p1 inputs don't work
- maincpu->space(AS_PROGRAM).install_read_handler(0x00200, 0x001fff, read16_delegate(FUNC(sbp_prot_device::sbp_lowerrom_r), this));
- maincpu->space(AS_PROGRAM).install_write_handler(0x00200, 0x001fff, write16_delegate(FUNC(sbp_prot_device::sbp_lowerrom_w), this));
+ maincpu->space(AS_PROGRAM).install_read_handler(0x00200, 0x001fff, read16_delegate(*this, FUNC(sbp_prot_device::sbp_lowerrom_r)));
+ maincpu->space(AS_PROGRAM).install_write_handler(0x00200, 0x001fff, write16_delegate(*this, FUNC(sbp_prot_device::sbp_lowerrom_w)));
/* the game code clears the text overlay used ingame immediately after writing it.. why? protection? sloppy code that the hw ignores? imperfect emulation? */
{
@@ -2798,15 +2798,15 @@ void sma_prot_device::reset_sma_rng()
void sma_prot_device::sma_install_random_read_handler(cpu_device* maincpu, int addr1, int addr2 )
{
- maincpu->space(AS_PROGRAM).install_read_handler(addr1, addr1 + 1, read16_delegate(FUNC(sma_prot_device::sma_random_r),this));
- maincpu->space(AS_PROGRAM).install_read_handler(addr2, addr2 + 1, read16_delegate(FUNC(sma_prot_device::sma_random_r),this));
+ maincpu->space(AS_PROGRAM).install_read_handler(addr1, addr1 + 1, read16_delegate(*this, FUNC(sma_prot_device::sma_random_r)));
+ maincpu->space(AS_PROGRAM).install_read_handler(addr2, addr2 + 1, read16_delegate(*this, FUNC(sma_prot_device::sma_random_r)));
}
void sma_prot_device::kof99_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev)
{
- maincpu->space(AS_PROGRAM).install_write_handler(0x2ffff0, 0x2ffff1, write16_delegate(FUNC(sma_prot_device::kof99_bankswitch_w),this));
- maincpu->space(AS_PROGRAM).install_read_handler(0x2fe446, 0x2fe447, read16_delegate(FUNC(sma_prot_device::prot_9a37_r),this));
+ maincpu->space(AS_PROGRAM).install_write_handler(0x2ffff0, 0x2ffff1, write16_delegate(*this, FUNC(sma_prot_device::kof99_bankswitch_w)));
+ maincpu->space(AS_PROGRAM).install_read_handler(0x2fe446, 0x2fe447, read16_delegate(*this, FUNC(sma_prot_device::prot_9a37_r)));
m_bankdev = bankdev;
sma_install_random_read_handler(maincpu, 0x2ffff8, 0x2ffffa);
@@ -2815,8 +2815,8 @@ void sma_prot_device::kof99_install_protection(cpu_device* maincpu, neogeo_banke
void sma_prot_device::garou_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev)
{
- maincpu->space(AS_PROGRAM).install_write_handler(0x2fffc0, 0x2fffc1, write16_delegate(FUNC(sma_prot_device::garou_bankswitch_w),this));
- maincpu->space(AS_PROGRAM).install_read_handler(0x2fe446, 0x2fe447, read16_delegate(FUNC(sma_prot_device::prot_9a37_r),this));
+ maincpu->space(AS_PROGRAM).install_write_handler(0x2fffc0, 0x2fffc1, write16_delegate(*this, FUNC(sma_prot_device::garou_bankswitch_w)));
+ maincpu->space(AS_PROGRAM).install_read_handler(0x2fe446, 0x2fe447, read16_delegate(*this, FUNC(sma_prot_device::prot_9a37_r)));
m_bankdev = bankdev;
sma_install_random_read_handler(maincpu, 0x2fffcc, 0x2ffff0);
@@ -2825,8 +2825,8 @@ void sma_prot_device::garou_install_protection(cpu_device* maincpu, neogeo_banke
void sma_prot_device::garouh_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev)
{
- maincpu->space(AS_PROGRAM).install_write_handler(0x2fffc0, 0x2fffc1, write16_delegate(FUNC(sma_prot_device::garouh_bankswitch_w),this));
- maincpu->space(AS_PROGRAM).install_read_handler(0x2fe446, 0x2fe447, read16_delegate(FUNC(sma_prot_device::prot_9a37_r),this));
+ maincpu->space(AS_PROGRAM).install_write_handler(0x2fffc0, 0x2fffc1, write16_delegate(*this, FUNC(sma_prot_device::garouh_bankswitch_w)));
+ maincpu->space(AS_PROGRAM).install_read_handler(0x2fe446, 0x2fe447, read16_delegate(*this, FUNC(sma_prot_device::prot_9a37_r)));
m_bankdev = bankdev;
sma_install_random_read_handler(maincpu, 0x2fffcc, 0x2ffff0);
@@ -2835,8 +2835,8 @@ void sma_prot_device::garouh_install_protection(cpu_device* maincpu, neogeo_bank
void sma_prot_device::mslug3_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev)
{
- maincpu->space(AS_PROGRAM).install_write_handler(0x2fffe4, 0x2fffe5, write16_delegate(FUNC(sma_prot_device::mslug3_bankswitch_w),this));
- maincpu->space(AS_PROGRAM).install_read_handler(0x2fe446, 0x2fe447, read16_delegate(FUNC(sma_prot_device::prot_9a37_r),this));
+ maincpu->space(AS_PROGRAM).install_write_handler(0x2fffe4, 0x2fffe5, write16_delegate(*this, FUNC(sma_prot_device::mslug3_bankswitch_w)));
+ maincpu->space(AS_PROGRAM).install_read_handler(0x2fe446, 0x2fe447, read16_delegate(*this, FUNC(sma_prot_device::prot_9a37_r)));
m_bankdev = bankdev;
// sma_install_random_read_handler(maincpu, 0x2ffff8, 0x2ffffa);
@@ -2845,8 +2845,8 @@ void sma_prot_device::mslug3_install_protection(cpu_device* maincpu, neogeo_bank
void sma_prot_device::kof2000_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev)
{
- maincpu->space(AS_PROGRAM).install_write_handler(0x2fffec, 0x2fffed, write16_delegate(FUNC(sma_prot_device::kof2000_bankswitch_w),this));
- maincpu->space(AS_PROGRAM).install_read_handler(0x2fe446, 0x2fe447, read16_delegate(FUNC(sma_prot_device::prot_9a37_r),this));
+ maincpu->space(AS_PROGRAM).install_write_handler(0x2fffec, 0x2fffed, write16_delegate(*this, FUNC(sma_prot_device::kof2000_bankswitch_w)));
+ maincpu->space(AS_PROGRAM).install_read_handler(0x2fe446, 0x2fe447, read16_delegate(*this, FUNC(sma_prot_device::prot_9a37_r)));
m_bankdev = bankdev;
sma_install_random_read_handler(maincpu, 0x2fffd8, 0x2fffda);
diff --git a/docs/release/src/hbmame/bus/neogeo_ctrl/ctrl.cpp b/docs/release/src/hbmame/bus/neogeo_ctrl/ctrl.cpp
index 7a026646e3a..6de326f89c1 100644
--- a/docs/release/src/hbmame/bus/neogeo_ctrl/ctrl.cpp
+++ b/docs/release/src/hbmame/bus/neogeo_ctrl/ctrl.cpp
@@ -42,7 +42,7 @@ DEFINE_DEVICE_TYPE(NEOGEO_CTRL_EDGE_CONNECTOR, neogeo_ctrl_edge_port_device, "ne
//-------------------------------------------------
device_neogeo_control_port_interface::device_neogeo_control_port_interface(const machine_config &mconfig, device_t &device)
- : device_slot_card_interface(mconfig,device)
+ : device_interface(device, "neogeoctrl")
{
m_port = dynamic_cast<neogeo_control_port_device *>(device.owner());
}
@@ -61,7 +61,7 @@ device_neogeo_control_port_interface::~device_neogeo_control_port_interface()
//-------------------------------------------------
device_neogeo_ctrl_edge_interface::device_neogeo_ctrl_edge_interface(const machine_config &mconfig, device_t &device)
- : device_slot_card_interface(mconfig,device)
+ : device_interface(device, "neogeoedge")
{
m_port = dynamic_cast<neogeo_ctrl_edge_port_device *>(device.owner());
}
@@ -86,7 +86,7 @@ device_neogeo_ctrl_edge_interface::~device_neogeo_ctrl_edge_interface()
neogeo_control_port_device::neogeo_control_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, NEOGEO_CONTROL_PORT, tag, owner, clock),
- device_slot_interface(mconfig, *this), m_device(nullptr)
+ device_single_card_slot_interface<device_neogeo_control_port_interface>(mconfig, *this), m_device(nullptr)
{
}
@@ -106,7 +106,7 @@ neogeo_control_port_device::~neogeo_control_port_device()
void neogeo_control_port_device::device_start()
{
- m_device = dynamic_cast<device_neogeo_control_port_interface *>(get_card_device());
+ m_device = get_card_device();
}
@@ -140,7 +140,8 @@ void neogeo_control_port_device::write_ctrlsel(uint8_t data)
neogeo_ctrl_edge_port_device::neogeo_ctrl_edge_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, NEOGEO_CTRL_EDGE_CONNECTOR, tag, owner, clock),
- device_slot_interface(mconfig, *this), m_device(nullptr)
+ device_single_card_slot_interface<device_neogeo_ctrl_edge_interface>(mconfig, *this),
+ m_device(nullptr)
{
}
@@ -160,23 +161,23 @@ neogeo_ctrl_edge_port_device::~neogeo_ctrl_edge_port_device()
void neogeo_ctrl_edge_port_device::device_start()
{
- m_device = dynamic_cast<device_neogeo_ctrl_edge_interface *>(get_card_device());
+ m_device = get_card_device();
}
-READ8_MEMBER(neogeo_ctrl_edge_port_device::in0_r)
+u8 neogeo_ctrl_edge_port_device::in0_r()
{
uint8_t data = 0xff;
if (m_device)
- data &= m_device->in0_r(space, offset, mem_mask);
+ data &= m_device->in0_r();
return data;
}
-READ8_MEMBER(neogeo_ctrl_edge_port_device::in1_r)
+u8 neogeo_ctrl_edge_port_device::in1_r()
{
uint8_t data = 0xff;
if (m_device)
- data &= m_device->in1_r(space, offset, mem_mask);
+ data &= m_device->in1_r();
return data;
}
diff --git a/docs/release/src/hbmame/bus/neogeo_ctrl/ctrl.h b/docs/release/src/hbmame/bus/neogeo_ctrl/ctrl.h
index 341bfeeb96b..c2da5be1ef4 100644
--- a/docs/release/src/hbmame/bus/neogeo_ctrl/ctrl.h
+++ b/docs/release/src/hbmame/bus/neogeo_ctrl/ctrl.h
@@ -23,7 +23,7 @@ class neogeo_ctrl_edge_port_device;
// ======================> device_neogeo_control_port_interface
-class device_neogeo_control_port_interface : public device_slot_card_interface
+class device_neogeo_control_port_interface : public device_interface
{
public:
// construction/destruction
@@ -40,8 +40,7 @@ protected:
// ======================> neogeo_control_port_device
-class neogeo_control_port_device : public device_t,
- public device_slot_interface
+class neogeo_control_port_device : public device_t, public device_single_card_slot_interface<device_neogeo_control_port_interface>
{
public:
// construction/destruction
@@ -51,7 +50,6 @@ public:
uint8_t read_ctrl();
uint8_t read_start_sel();
void write_ctrlsel(uint8_t data);
- DECLARE_READ8_MEMBER( ctrl_r ) { return read_ctrl(); }
protected:
// device-level overrides
@@ -63,7 +61,7 @@ protected:
// ======================> device_neogeo_ctrl_edge_interface
-class device_neogeo_ctrl_edge_interface : public device_slot_card_interface
+class device_neogeo_ctrl_edge_interface : public device_interface
{
public:
// construction/destruction
@@ -71,8 +69,8 @@ public:
virtual ~device_neogeo_ctrl_edge_interface();
virtual uint8_t read_start_sel() { return 0xff; }
- virtual DECLARE_READ8_MEMBER( in0_r ) { return 0xff; }
- virtual DECLARE_READ8_MEMBER( in1_r ) { return 0xff; }
+ virtual u8 in0_r() { return 0xff; }
+ virtual u8 in1_r() { return 0xff; }
virtual void write_ctrlsel(uint8_t data) { }
protected:
@@ -81,8 +79,7 @@ protected:
// ======================> neogeo_ctrl_edge_port_device
-class neogeo_ctrl_edge_port_device : public device_t,
- public device_slot_interface
+class neogeo_ctrl_edge_port_device : public device_t, public device_single_card_slot_interface<device_neogeo_ctrl_edge_interface>
{
public:
// construction/destruction
@@ -90,8 +87,8 @@ public:
virtual ~neogeo_ctrl_edge_port_device();
uint8_t read_start_sel();
- DECLARE_READ8_MEMBER( in0_r );
- DECLARE_READ8_MEMBER( in1_r );
+ u8 in0_r();
+ u8 in1_r();
void write_ctrlsel(uint8_t data);
protected:
diff --git a/docs/release/src/hbmame/bus/neogeo_ctrl/dial.cpp b/docs/release/src/hbmame/bus/neogeo_ctrl/dial.cpp
index bf3dc8526aa..b2edeab9e66 100644
--- a/docs/release/src/hbmame/bus/neogeo_ctrl/dial.cpp
+++ b/docs/release/src/hbmame/bus/neogeo_ctrl/dial.cpp
@@ -95,7 +95,7 @@ void neogeo_dial_device::device_reset()
// in0_r
//-------------------------------------------------
-READ8_MEMBER(neogeo_dial_device::in0_r)
+u8 neogeo_dial_device::in0_r()
{
uint8_t res = 0;
if (m_ctrl_sel & 0x01)
@@ -110,7 +110,7 @@ READ8_MEMBER(neogeo_dial_device::in0_r)
// in1_r
//-------------------------------------------------
-READ8_MEMBER(neogeo_dial_device::in1_r)
+u8 neogeo_dial_device::in1_r()
{
uint8_t res = 0;
if (m_ctrl_sel & 0x01)
diff --git a/docs/release/src/hbmame/bus/neogeo_ctrl/dial.h b/docs/release/src/hbmame/bus/neogeo_ctrl/dial.h
index 06850e1c66d..ffa077648ae 100644
--- a/docs/release/src/hbmame/bus/neogeo_ctrl/dial.h
+++ b/docs/release/src/hbmame/bus/neogeo_ctrl/dial.h
@@ -37,8 +37,8 @@ protected:
virtual void device_reset() override;
// device_neogeo_control_port_interface overrides
- virtual DECLARE_READ8_MEMBER( in0_r ) override;
- virtual DECLARE_READ8_MEMBER( in1_r ) override;
+ virtual u8 in0_r() override;
+ virtual u8 in1_r() override;
virtual void write_ctrlsel(uint8_t data) override;
private:
diff --git a/docs/release/src/hbmame/bus/neogeo_ctrl/irrmaze.cpp b/docs/release/src/hbmame/bus/neogeo_ctrl/irrmaze.cpp
index 4515781fe93..3465d9b6ebc 100644
--- a/docs/release/src/hbmame/bus/neogeo_ctrl/irrmaze.cpp
+++ b/docs/release/src/hbmame/bus/neogeo_ctrl/irrmaze.cpp
@@ -83,7 +83,7 @@ void neogeo_irrmaze_device::device_reset()
// in0_r
//-------------------------------------------------
-READ8_MEMBER(neogeo_irrmaze_device::in0_r)
+u8 neogeo_irrmaze_device::in0_r()
{
uint8_t res = 0;
if (m_ctrl_sel & 0x01)
@@ -98,7 +98,7 @@ READ8_MEMBER(neogeo_irrmaze_device::in0_r)
// in1_r
//-------------------------------------------------
-READ8_MEMBER(neogeo_irrmaze_device::in1_r)
+u8 neogeo_irrmaze_device::in1_r()
{
return m_buttons->read();
}
diff --git a/docs/release/src/hbmame/bus/neogeo_ctrl/irrmaze.h b/docs/release/src/hbmame/bus/neogeo_ctrl/irrmaze.h
index dddb84f2785..a365f283fdb 100644
--- a/docs/release/src/hbmame/bus/neogeo_ctrl/irrmaze.h
+++ b/docs/release/src/hbmame/bus/neogeo_ctrl/irrmaze.h
@@ -37,8 +37,8 @@ protected:
virtual void device_reset() override;
// device_neogeo_control_port_interface overrides
- virtual DECLARE_READ8_MEMBER( in0_r ) override;
- virtual DECLARE_READ8_MEMBER( in1_r ) override;
+ virtual u8 in0_r() override;
+ virtual u8 in1_r() override;
virtual void write_ctrlsel(uint8_t data) override;
private:
diff --git a/docs/release/src/hbmame/bus/neogeo_ctrl/joystick.cpp b/docs/release/src/hbmame/bus/neogeo_ctrl/joystick.cpp
index 6fb092f79dd..2c0a2cfb1e9 100644
--- a/docs/release/src/hbmame/bus/neogeo_ctrl/joystick.cpp
+++ b/docs/release/src/hbmame/bus/neogeo_ctrl/joystick.cpp
@@ -190,7 +190,7 @@ void neogeo_joy_ac_device::device_reset()
// in0_r
//-------------------------------------------------
-READ8_MEMBER(neogeo_joy_ac_device::in0_r)
+u8 neogeo_joy_ac_device::in0_r()
{
return m_joy1->read();
}
@@ -199,7 +199,7 @@ READ8_MEMBER(neogeo_joy_ac_device::in0_r)
// in1_r
//-------------------------------------------------
-READ8_MEMBER(neogeo_joy_ac_device::in1_r)
+u8 neogeo_joy_ac_device::in1_r()
{
return m_joy2->read();
}
diff --git a/docs/release/src/hbmame/bus/neogeo_ctrl/joystick.h b/docs/release/src/hbmame/bus/neogeo_ctrl/joystick.h
index 9d5c94d4b22..9e93a8cfe04 100644
--- a/docs/release/src/hbmame/bus/neogeo_ctrl/joystick.h
+++ b/docs/release/src/hbmame/bus/neogeo_ctrl/joystick.h
@@ -64,8 +64,8 @@ protected:
virtual void device_reset() override;
// device_neogeo_ctrl_edge_interface overrides
- virtual DECLARE_READ8_MEMBER( in0_r ) override;
- virtual DECLARE_READ8_MEMBER( in1_r ) override;
+ virtual u8 in0_r() override;
+ virtual u8 in1_r() override;
private:
required_ioport m_joy1;
diff --git a/docs/release/src/hbmame/bus/neogeo_ctrl/kizuna4p.cpp b/docs/release/src/hbmame/bus/neogeo_ctrl/kizuna4p.cpp
index 2f81ee28153..cfac135736a 100644
--- a/docs/release/src/hbmame/bus/neogeo_ctrl/kizuna4p.cpp
+++ b/docs/release/src/hbmame/bus/neogeo_ctrl/kizuna4p.cpp
@@ -121,7 +121,7 @@ void neogeo_kizuna4p_device::device_reset()
// in0_r
//-------------------------------------------------
-READ8_MEMBER(neogeo_kizuna4p_device::in0_r)
+u8 neogeo_kizuna4p_device::in0_r()
{
uint8_t res = 0;
if (m_ctrl_sel & 0x01)
@@ -138,7 +138,7 @@ READ8_MEMBER(neogeo_kizuna4p_device::in0_r)
// in1_r
//-------------------------------------------------
-READ8_MEMBER(neogeo_kizuna4p_device::in1_r)
+u8 neogeo_kizuna4p_device::in1_r()
{
uint8_t res = 0;
if (m_ctrl_sel & 0x01)
diff --git a/docs/release/src/hbmame/bus/neogeo_ctrl/kizuna4p.h b/docs/release/src/hbmame/bus/neogeo_ctrl/kizuna4p.h
index 3a5fb43f96c..4c78cec68c0 100644
--- a/docs/release/src/hbmame/bus/neogeo_ctrl/kizuna4p.h
+++ b/docs/release/src/hbmame/bus/neogeo_ctrl/kizuna4p.h
@@ -37,8 +37,8 @@ protected:
virtual void device_reset() override;
// device_neogeo_control_port_interface overrides
- virtual DECLARE_READ8_MEMBER( in0_r ) override;
- virtual DECLARE_READ8_MEMBER( in1_r ) override;
+ virtual u8 in0_r() override;
+ virtual u8 in1_r() override;
virtual uint8_t read_start_sel() override;
virtual void write_ctrlsel(uint8_t data) override;
diff --git a/docs/release/src/hbmame/drivers/cinemat.cpp b/docs/release/src/hbmame/drivers/cinemat.cpp
index 3ee3bb60250..6405aa78b8f 100644
--- a/docs/release/src/hbmame/drivers/cinemat.cpp
+++ b/docs/release/src/hbmame/drivers/cinemat.cpp
@@ -29,7 +29,7 @@ public:
void init_bbugtest()
{
- m_maincpu->space(AS_IO).install_read_handler(0x0c, 0x0f, read8_delegate(FUNC(cinemat_hbmame::boxingb_dial_r),this));
+ m_maincpu->space(AS_IO).install_read_handler(0x0c, 0x0f, read8_delegate(*this, FUNC(cinemat_hbmame::boxingb_dial_r)));
}
};
diff --git a/docs/release/src/hbmame/drivers/cps1.cpp b/docs/release/src/hbmame/drivers/cps1.cpp
index a7947f8fcc1..8884dca36f1 100644
--- a/docs/release/src/hbmame/drivers/cps1.cpp
+++ b/docs/release/src/hbmame/drivers/cps1.cpp
@@ -353,11 +353,11 @@ TIMER_DEVICE_CALLBACK_MEMBER(cps_state::ganbare_interrupt)
void cps_state::cpu_space_map(address_map &map)
{
// Eventually add the sync to E due to vpa
- map(0xfffff2, 0xffffff).lr16("autovectors", [this](offs_t offset) -> u16 {
+ map(0xfffff2, 0xffffff).lr16(NAME([this](offs_t offset) -> u16 {
// clear the IPL1 and IPL2 flip-flops
m_maincpu->set_input_line(2, CLEAR_LINE);
m_maincpu->set_input_line(4, CLEAR_LINE);
- return 0x19+offset; });
+ return 0x19+offset; }));
}
@@ -12336,7 +12336,7 @@ READ16_MEMBER(cps_state::sf2rb_prot_r)
void cps_state::init_sf2rb()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x2fffff, read16_delegate(FUNC(cps_state::sf2rb_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x2fffff, read16_delegate(*this, FUNC(cps_state::sf2rb_prot_r)));
init_cps1();}
@@ -12356,7 +12356,7 @@ READ16_MEMBER(cps_state::sf2rb2_prot_r)
void cps_state::init_sf2rb2()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x2fffff, read16_delegate(FUNC(cps_state::sf2rb2_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x2fffff, read16_delegate(*this, FUNC(cps_state::sf2rb2_prot_r)));
init_cps1();
}
@@ -12366,7 +12366,7 @@ void cps_state::init_sf2ee()
/* This specific revision of SF2 has the CPS-B custom mapped at a different address. */
/* The mapping is handled by the PAL IOB2 on the B-board */
m_maincpu->space(AS_PROGRAM).unmap_readwrite(0x800140, 0x80017f);
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8001c0, 0x8001ff, read16_delegate(FUNC(cps_state::cps1_cps_b_r),this), write16_delegate(FUNC(cps_state::cps1_cps_b_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8001c0, 0x8001ff, read16_delegate(*this, FUNC(cps_state::cps1_cps_b_r)), write16_delegate(*this, FUNC(cps_state::cps1_cps_b_w)));
init_cps1();
}
@@ -12374,7 +12374,7 @@ void cps_state::init_sf2ee()
void cps_state::init_sf2thndr()
{
/* This particular hack uses a modified B-board PAL which mirrors the CPS-B registers at an alternate address */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8001c0, 0x8001ff, read16_delegate(FUNC(cps_state::cps1_cps_b_r),this), write16_delegate(FUNC(cps_state::cps1_cps_b_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8001c0, 0x8001ff, read16_delegate(*this, FUNC(cps_state::cps1_cps_b_r)), write16_delegate(*this, FUNC(cps_state::cps1_cps_b_w)));
init_cps1();
}
@@ -12382,7 +12382,7 @@ void cps_state::init_sf2thndr()
void cps_state::init_sf2hack()
{
/* some SF2 hacks have some inputs wired to the LSB instead of MSB */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x800018, 0x80001f, read16_delegate(FUNC(cps_state::cps1_hack_dsw_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x800018, 0x80001f, read16_delegate(*this, FUNC(cps_state::cps1_hack_dsw_r)));
init_cps1();
}
@@ -12403,7 +12403,7 @@ READ16_MEMBER(cps_state::sf2dongb_prot_r)
void cps_state::init_sf2dongb()
{
// There is a hacked up Altera EP910PC-30 DIP in the 5f socket instead of a 4th eprom
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x180000, 0x1fffff, read16_delegate(FUNC(cps_state::sf2dongb_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x180000, 0x1fffff, read16_delegate(*this, FUNC(cps_state::sf2dongb_prot_r)));
init_cps1();
}
@@ -12425,8 +12425,8 @@ WRITE16_MEMBER(cps_state::sf2ceblp_prot_w)
void cps_state::init_sf2ceblp()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x5762b0, 0x5762b1, write16_delegate(FUNC(cps_state::sf2ceblp_prot_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x57A2b0, 0x57A2b1, read16_delegate(FUNC(cps_state::sf2ceblp_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x5762b0, 0x5762b1, write16_delegate(*this, FUNC(cps_state::sf2ceblp_prot_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x57A2b0, 0x57A2b1, read16_delegate(*this, FUNC(cps_state::sf2ceblp_prot_r)));
init_cps1();
}
@@ -12543,7 +12543,7 @@ void cps_state::init_ganbare()
init_cps1();
/* ram is shared between the CPS work ram and the timekeeper ram */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff0000, 0xffffff, read16_delegate(FUNC(cps_state::ganbare_ram_r),this), write16_delegate(FUNC(cps_state::ganbare_ram_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff0000, 0xffffff, read16_delegate(*this, FUNC(cps_state::ganbare_ram_r)), write16_delegate(*this, FUNC(cps_state::ganbare_ram_w)));
}
READ16_MEMBER(cps_state::dinohunt_sound_r)
@@ -12557,7 +12557,7 @@ READ16_MEMBER(cps_state::dinohunt_sound_r)
void cps_state::init_dinohunt()
{
// is this shared with the new sound hw?
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xf18000, 0xf19fff, read16_delegate(FUNC(cps_state::dinohunt_sound_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xf18000, 0xf19fff, read16_delegate(*this, FUNC(cps_state::dinohunt_sound_r)));
m_maincpu->space(AS_PROGRAM).install_read_port(0xfc0000, 0xfc0001, "IN2"); ;
// the ym2151 doesn't seem to be used. Is it actually on the PCB?
diff --git a/docs/release/src/hbmame/drivers/cps1mis.cpp b/docs/release/src/hbmame/drivers/cps1mis.cpp
index 68cc074fe1e..ebba6b423d9 100644
--- a/docs/release/src/hbmame/drivers/cps1mis.cpp
+++ b/docs/release/src/hbmame/drivers/cps1mis.cpp
@@ -6027,7 +6027,7 @@ HACK( 1992, wofud, wof, qsound, wof, cps_state, wof, RO
void cps_state::init_dinoeh()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x800180, 0x800181, write16_delegate(FUNC(cps_state::dinoh_sound_command_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x800180, 0x800181, write16_delegate(*this, FUNC(cps_state::dinoh_sound_command_w)));
kabuki_setup(dino_decode);
init_cps1();
}
@@ -8739,6 +8739,110 @@ ROM_START( captcomms69 ) //captcommr1jy
ROM_LOAD( "captcomm.key", 0x00, 0x80, CRC(3bd9c940) SHA1(8964479f402ce7e000f1da8b3f6386e6915269e1) )
ROM_END
+ROM_START( captcomms70) //captcommr1zt
+ ROM_REGION( 0X400000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ccs70.10f", 0x000000, 0x300000, CRC(b189b9bb) SHA1(2e92da11d6ca4eacc8425ecdfc588e0f24fb1962) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cc-5m.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-7m.5a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-1m.4a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-3m.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-6m.7a", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-8m.9a", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-2m.8a", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-4m.10a", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "cc_09.11a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "cc_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) )
+ ROM_LOAD( "cc_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD( "captcomm.key", 0x00, 0x80, CRC(3bd9c940) SHA1(8964479f402ce7e000f1da8b3f6386e6915269e1) )
+ROM_END
+
+ROM_START( captcomms71) //captcommr1p
+ ROM_REGION( 0X400000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ccs71.10f", 0x000000, 0x302532, CRC(9e90ca66) SHA1(d60b2d658dd8773b2c818d1cf07b48bb88ff9aa2) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cc-5m.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-7m.5a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-1m.4a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-3m.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-6m.7a", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-8m.9a", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-2m.8a", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-4m.10a", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "cc_09.11a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "cc_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) )
+ ROM_LOAD( "cc_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD( "captcomm.key", 0x00, 0x80, CRC(3bd9c940) SHA1(8964479f402ce7e000f1da8b3f6386e6915269e1) )
+ROM_END
+
+ROM_START( captcomms72) //captcommr1pmy
+ ROM_REGION( 0X400000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ccs72.10f", 0x000000, 0x3024DA, CRC(8860c3f3) SHA1(8d863b4877c195098271a0e45c7e4b5354efb07d) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cc-5m.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-7m.5a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-1m.4a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-3m.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-6m.7a", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-8m.9a", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-2m.8a", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-4m.10a", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "cc_09.11a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "cc_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) )
+ ROM_LOAD( "cc_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD( "captcomm.key", 0x00, 0x80, CRC(3bd9c940) SHA1(8964479f402ce7e000f1da8b3f6386e6915269e1) )
+ROM_END
+
+ROM_START( captcomms73) //captcommr1pwx
+ ROM_REGION( 0X400000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ccs73.10f", 0x000000, 0x302532, CRC(0fd9dcd8) SHA1(d8473a4f4e17bf635a706ebee523353fda01e06d) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cc-5m.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-7m.5a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-1m.4a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-3m.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-6m.7a", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-8m.9a", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-2m.8a", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-4m.10a", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "cc_09.11a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "cc_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) )
+ ROM_LOAD( "cc_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD( "captcomm.key", 0x00, 0x80, CRC(3bd9c940) SHA1(8964479f402ce7e000f1da8b3f6386e6915269e1) )
+ROM_END
+
/************************
Cadillacs And Dinosaurs
**************************/
@@ -17475,7 +17579,7 @@ ROM_START( sf2ces26 )
ROM_CONTINUE( 0x10000, 0x08000 )
ROM_REGION( 0x40000, "oki", 0 )
- ROM_LOAD( "s92s25.11c", 0x00000, 0x20000, CRC(0639295f) SHA1(82da30cd9c446434446502ad1f580102803f1645) )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
ROM_REGION( 0x80, "control", 0 )
@@ -17507,7 +17611,7 @@ ROM_START( sf2ces27 )
ROM_CONTINUE( 0x10000, 0x08000 )
ROM_REGION( 0x40000, "oki", 0 )
- ROM_LOAD( "s92s25.11c", 0x00000, 0x20000, CRC(0639295f) SHA1(82da30cd9c446434446502ad1f580102803f1645) )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
ROM_REGION( 0x80, "control", 0 )
@@ -17539,7 +17643,135 @@ ROM_START( sf2ces28 )
ROM_CONTINUE( 0x10000, 0x08000 )
ROM_REGION( 0x40000, "oki", 0 )
- ROM_LOAD( "s92s25.11c", 0x00000, 0x20000, CRC(0639295f) SHA1(82da30cd9c446434446502ad1f580102803f1645) )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2ce.key", 0x00, 0x80, CRC(35b37429) SHA1(b372cce106c0900554735c207fb333ac93554ec2) )
+ROM_END
+
+ROM_START( sf2ces29 ) //sf2ce3q
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "s92s29.8f", 0x000000, 0x80000, CRC(1a98a59b) SHA1(dbe968463aea1a173fe74416352df0300ee854dd) )
+ ROM_LOAD16_WORD_SWAP( "s92s29.7f", 0x080000, 0x80000, CRC(3a260c4f) SHA1(55455b60a36e75a96ea6f38d1d131489060a10df) )
+ ROM_LOAD16_WORD_SWAP( "s92s29.6f", 0x100000, 0x80000, CRC(73bf4606) SHA1(8b2489b88a781ab88387dffaafa39495f0a3c497) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10ms29.3c", 0x400000, 0x80000, CRC(d823d171) SHA1(6716a0f94cd2801279d135b61190a6bdf93122ae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11ms29.4c", 0x400002, 0x80000, CRC(4ca06110) SHA1(b121ed9bd741909c8f16d267b7b20b9ffc8b958b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12ms29.5c", 0x400004, 0x80000, CRC(7cefb44f) SHA1(a15c0a297b17216ee78213c5694dc8dcb2945a8e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13ms29.6c", 0x400006, 0x80000, CRC(f9d396d9) SHA1(d877695416b6fff957d378c989547fb52bc1c494) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2ce.key", 0x00, 0x80, CRC(35b37429) SHA1(b372cce106c0900554735c207fb333ac93554ec2) )
+ROM_END
+
+ROM_START( sf2ces30 ) //sf2ce3q (The same name roms sf2ces29)
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "s92s30.8f", 0x000000, 0x80000, CRC(e65e524d) SHA1(15f4fe3328e74c41ca9e2c6af9a17fe3f6f081c8) )
+ ROM_LOAD16_WORD_SWAP( "s92s30.7f", 0x080000, 0x80000, CRC(c2a3d649) SHA1(bc200e637d4eb102f3e269d757ddae3357ddb191) )
+ ROM_LOAD16_WORD_SWAP( "s92s29.6f", 0x100000, 0x80000, CRC(73bf4606) SHA1(8b2489b88a781ab88387dffaafa39495f0a3c497) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10ms29.3c", 0x400000, 0x80000, CRC(d823d171) SHA1(6716a0f94cd2801279d135b61190a6bdf93122ae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11ms29.4c", 0x400002, 0x80000, CRC(4ca06110) SHA1(b121ed9bd741909c8f16d267b7b20b9ffc8b958b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12ms29.5c", 0x400004, 0x80000, CRC(7cefb44f) SHA1(a15c0a297b17216ee78213c5694dc8dcb2945a8e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13ms29.6c", 0x400006, 0x80000, CRC(f9d396d9) SHA1(d877695416b6fff957d378c989547fb52bc1c494) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2ce.key", 0x00, 0x80, CRC(35b37429) SHA1(b372cce106c0900554735c207fb333ac93554ec2) )
+ROM_END
+
+ROM_START( sf2ces31 ) //sf2ce1q
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "s92s31.8f", 0x000000, 0x80000, CRC(cca48622) SHA1(8796a9504e7d11b64b848fcd23239d00fb15c0ec) )
+ ROM_LOAD16_WORD_SWAP( "s92s31.7f", 0x080000, 0x80000, CRC(b9e810ec) SHA1(335742f3de206c090897ceac88011e09002ec245) )
+ ROM_LOAD16_WORD_SWAP( "s92s31.6f", 0x100000, 0x80000, CRC(706fbb6c) SHA1(cbb609444a793af3194b2705da9101668baaa382) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10ms31.3c", 0x400000, 0x80000, CRC(c5e31ea7) SHA1(818a0a756d82965643462082b8762d401da4b23a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11ms31.4c", 0x400002, 0x80000, CRC(65cf5801) SHA1(cf5fc40d52b55040da610481fbb71fff34ef845d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12ms31.5c", 0x400004, 0x80000, CRC(4859584a) SHA1(648d97ab6e822a98bc981e96958899ac0be32cbe) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13ms31.6c", 0x400006, 0x80000, CRC(718543af) SHA1(9bf7c456a4f0ee1ccb4ac78d0a6718a75bc5ec46) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2ce.key", 0x00, 0x80, CRC(35b37429) SHA1(b372cce106c0900554735c207fb333ac93554ec2) )
+ROM_END
+
+ROM_START( sf2ces32 ) //sf2ce1q (The same name roms sf2ces31)
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "s92s32.8f", 0x000000, 0x80000, CRC(fd9faded) SHA1(068bcbef6bf8b1a105502718af1e0cb713402960) )
+ ROM_LOAD16_WORD_SWAP( "s92s31.7f", 0x080000, 0x80000, CRC(b9e810ec) SHA1(335742f3de206c090897ceac88011e09002ec245) )
+ ROM_LOAD16_WORD_SWAP( "s92s31.6f", 0x100000, 0x80000, CRC(706fbb6c) SHA1(cbb609444a793af3194b2705da9101668baaa382) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10ms31.3c", 0x400000, 0x80000, CRC(c5e31ea7) SHA1(818a0a756d82965643462082b8762d401da4b23a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11ms31.4c", 0x400002, 0x80000, CRC(65cf5801) SHA1(cf5fc40d52b55040da610481fbb71fff34ef845d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12ms31.5c", 0x400004, 0x80000, CRC(4859584a) SHA1(648d97ab6e822a98bc981e96958899ac0be32cbe) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13ms31.6c", 0x400006, 0x80000, CRC(718543af) SHA1(9bf7c456a4f0ee1ccb4ac78d0a6718a75bc5ec46) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
ROM_REGION( 0x80, "control", 0 )
@@ -22785,6 +23017,34 @@ ROM_START( tk2h146 ) //wofjdrdz
ROM_LOAD ( "wof.key", 0x00, 0x80, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
ROM_END
+ROM_START( tk2h147 ) //wofjdr
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2h147.10f", 0x000000, 0x200000, CRC(ac20b217) SHA1(2fec042d269b5a81af8ae511c12b9ffb5a3f5134) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2h140.7a", 0x200000, 0x80000, CRC(e3c8c198) SHA1(f31f9f5c41d94ff84d29ed787d9104ee3fc1a7aa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2h140.8a", 0x200002, 0x80000, CRC(5e3c0642) SHA1(8ee6834b1d497c4e4724b1db48d61df558fd0e93) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2h140.9a", 0x200004, 0x80000, CRC(d65a91d9) SHA1(4e1fa66c25fb4e28e49a458500089094cb54a308) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2h140.10a", 0x200006, 0x80000, CRC(675d490e) SHA1(180deb2aff5c2e35cc0eaaed8e6d5d490beaa5ea) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 )
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 )
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x00, 0x80, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
/********************
Tenchi wo Kurau II
*********************/
@@ -24979,6 +25239,10 @@ HACK( 2019, captcomms66, captcomm, cps1_10MHz, captcomm, cps_state, cps1,
HACK( 2019, captcomms67, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "hack", "Captain Commando (God Of War Edition Update 2019-09-16)" , MACHINE_SUPPORTS_SAVE )
HACK( 2019, captcomms68, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "hack", "Captain Commando (Nightmare Edition Update 2019-09-16)" , MACHINE_SUPPORTS_SAVE )
HACK( 2019, captcomms69, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "hack", "Captain Commando (Elite Edition Update 2019-09-16)" , MACHINE_SUPPORTS_SAVE )
+HACK( 2019, captcomms70, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "hack", "Captain Commando (Journey Version 2019-10-21)" , MACHINE_SUPPORTS_SAVE )
+HACK( 2019, captcomms71, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "hack", "Captain Commando (Double Version 2019-10-21)" , MACHINE_SUPPORTS_SAVE )
+HACK( 2019, captcomms72, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "hack", "Captain Commando (Nightmare Edition Update 2019-10-21)" , MACHINE_SUPPORTS_SAVE )
+HACK( 2019, captcomms73, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "hack", "Captain Commando (Unlimited Bullet Version 2019-10-21)" , MACHINE_SUPPORTS_SAVE )
// Cadillacs And Dinosaurs
HACK( 1993, dinos01, dino, qsound, dino, cps_state, dino, ROT0, "Ydmis", "Cadillacs and Dinosaurs (Weapon Items Bazooka)", MACHINE_SUPPORTS_SAVE )
HACK( 1993, dinos02, dino, qsound, dino, cps_state, dino, ROT0, "Ydmis", "Cadillacs and Dinosaurs (Weapon Items Club)", MACHINE_SUPPORTS_SAVE )
@@ -25275,7 +25539,11 @@ HACK( 2019, sf2ces24, sf2ce, cps1_12MHz, sf2, cps_state, cps1,
HACK( 2019, sf2ces25, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "MamePlus", "Street Fighter II': Champion Edition (Super Ryu 2018-05-01)", MACHINE_SUPPORTS_SAVE )
HACK( 2019, sf2ces26, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "DDJ", "Street Fighter II': Champion Edition (Quick Go Next Stage 2016-01-23)", MACHINE_SUPPORTS_SAVE )
HACK( 2019, sf2ces27, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "DDJ", "Street Fighter II': Champion Edition (Easy Move 2016-08-04)", MACHINE_SUPPORTS_SAVE )
-HACK( 1992, sf2ces28, sf2ce, cps1_12MHz, sf2, cps_state, sf2rb, ROT0, "DDJ", "Street Fighter II': Champion Edition (Rainbow, bootleg, Easy Move 2018-05-06)", MACHINE_SUPPORTS_SAVE )
+HACK( 2018, sf2ces28, sf2ce, cps1_12MHz, sf2, cps_state, sf2rb, ROT0, "DDJ", "Street Fighter II': Champion Edition (Rainbow, bootleg, Easy Move 2018-05-06)", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, sf2ces29, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "hack", "Street Fighter II': Champion Edition (3 Questions Edition 2019-10-21)", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, sf2ces30, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "hack", "Street Fighter II': Champion Edition (3 Questions Edition Simplify The Move 2019-10-21)", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, sf2ces31, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "hack", "Street Fighter II': Champion Edition (Question Mark Edition 2019-10-21)", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, sf2ces32, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "hack", "Street Fighter II': Champion Edition (Question Mark Edition Simplify The Move 2019-10-21)", MACHINE_SUPPORTS_SAVE )
HACK( 2014, sf2js01, sf2, cps1_10MHz, sf2j, cps_state, cps1, ROT0, "hack", "Street Fighter II: The World Warrior (King Of The Four Heavenly Kings)", MACHINE_SUPPORTS_SAVE )
HACK( 2016, sf2js02, sf2, cps1_10MHz, sf2j, cps_state, cps1, ROT0, "hack", "Street Fighter II: The World Warrior (12 Person Version 2016-01-01)", MACHINE_SUPPORTS_SAVE )
HACK( 1991, sf2s01, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "nianxu", "Street Fighter II: The World Warrior (Cancellation Of Force)", MACHINE_SUPPORTS_SAVE )
@@ -25452,6 +25720,7 @@ HACK( 2019, tk2h143, wof, qsound, wof, cps_state, wof,
HACK( 2019, tk2h144, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Dragon Edition 2019-07-14)", MACHINE_SUPPORTS_SAVE )
HACK( 2019, tk2h145, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Z Lu Bu 2019-08-24)", MACHINE_SUPPORTS_SAVE )
HACK( 2019, tk2h146, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Daren Fighting Edition 2019-09-16)", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, tk2h147, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Daren Edition 2019-10-21)", MACHINE_SUPPORTS_SAVE )
// Tenchi wo Kurau II (wofch)
HACK( 1994, tk2p02, wofch, qsound, wofch, cps_state, wof, ROT0, "Katana", "Tenchi wo Kurau II (Boss Rush)", MACHINE_SUPPORTS_SAVE )
HACK( 1994, tk2p03, wofch, qsound, wofch, cps_state, wof, ROT0, "Katana", "Tenchi wo Kurau II (Boss Rush Extreme 2018-06-18)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/cps2.cpp b/docs/release/src/hbmame/drivers/cps2.cpp
index 8a0382bb611..a36d0b39748 100644
--- a/docs/release/src/hbmame/drivers/cps2.cpp
+++ b/docs/release/src/hbmame/drivers/cps2.cpp
@@ -10685,7 +10685,7 @@ void cps2_state::init_pzloop2()
save_item(NAME(m_readpaddle));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x804000, 0x804001, read16_delegate(FUNC(cps2_state::joy_or_paddle_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x804000, 0x804001, read16_delegate(*this, FUNC(cps2_state::joy_or_paddle_r)));
}
void cps2_state::init_singbrd()
@@ -10733,7 +10733,7 @@ void cps2_state::init_gigaman2()
m_gigaman2_dummyqsound_ram = std::make_unique<uint16_t[]>(0x20000 / 2);
save_pointer(NAME(m_gigaman2_dummyqsound_ram.get()), 0x20000 / 2);
- space.install_readwrite_handler(0x618000, 0x619fff, read16_delegate(FUNC(cps2_state::gigaman2_dummyqsound_r),this), write16_delegate(FUNC(cps2_state::gigaman2_dummyqsound_w), this)); // no qsound..
+ space.install_readwrite_handler(0x618000, 0x619fff, read16_delegate(*this, FUNC(cps2_state::gigaman2_dummyqsound_r)), write16_delegate(*this, FUNC(cps2_state::gigaman2_dummyqsound_w))); // no qsound..
memcpy(m_decrypted_opcodes, memregion("maincpu")->base()+0x200000, 0x200000);
@@ -10750,7 +10750,7 @@ void cps2_state::init_ecofghtr()
save_item(NAME(m_readpaddle));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x804000, 0x804001, read16_delegate(FUNC(cps2_state::joy_or_paddle_ecofghtr_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x804000, 0x804001, read16_delegate(*this, FUNC(cps2_state::joy_or_paddle_ecofghtr_r)));
}
diff --git a/docs/release/src/hbmame/drivers/cps2mis.cpp b/docs/release/src/hbmame/drivers/cps2mis.cpp
index c59e7e08030..9f29fbc8b2d 100644
--- a/docs/release/src/hbmame/drivers/cps2mis.cpp
+++ b/docs/release/src/hbmame/drivers/cps2mis.cpp
@@ -2368,6 +2368,42 @@ ROM_START( avspus02 )
ROM_LOAD( "avspu.key", 0x000000, 0x000014, CRC(4e68e346) SHA1(60d5a12c77d07efc01f48968f4a12c59bf6b629e) )
ROM_END
+ /***************
+ Battle Circuit
+******************/
+
+ROM_START( batcirds01 ) //batcird
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "btceds01.03", 0x000000, 0x80000, CRC(03bd6707) SHA1(62eda0d68b9940f5d07a529d05e8c90fe6a8ad02) )
+ ROM_LOAD16_WORD_SWAP( "btceds01.04", 0x080000, 0x80000, CRC(c3ff82b6) SHA1(3b23b13e0588479a598dd43093a42cd0c9db1484) )
+ ROM_LOAD16_WORD_SWAP( "btced.05", 0x100000, 0x80000, CRC(20bdbb14) SHA1(fe3a202741ca657b2b67e89050788b67d709a36d) )
+ ROM_LOAD16_WORD_SWAP( "btced.06", 0x180000, 0x80000, CRC(b4d8f5bc) SHA1(dc5ca580ecfb051ded551663ea4e9f161f820f81) )
+ ROM_LOAD16_WORD_SWAP( "btcs01.07", 0x200000, 0x80000, CRC(b194270f) SHA1(e152d48760c92b84c748014ef68050f138f75cf5) )
+ ROM_LOAD16_WORD_SWAP( "btc.08", 0x280000, 0x80000, CRC(6aac85ab) SHA1(ad02d4185c2b3664fb96350d8ad317d3939a7554) )
+ ROM_LOAD16_WORD_SWAP( "btcs01.09", 0x300000, 0x80000, CRC(31865161) SHA1(2217a4b8ca1ed3fe52e9b9d4ead85ce7df3a6bf9) )
+
+ ROM_REGION16_BE( CODE_SIZE, "user1", 0 )
+ ROM_FILL( 0x000000, 0x100000, 0x00 )
+
+ ROM_REGION( 0x1000000, "gfx", 0 )
+ ROMX_LOAD( "btc.13m", 0x000000, 0x400000, CRC(dc705bad) SHA1(96e37147674bf9cd21c770897da59daac25d921a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "btc.15m", 0x000002, 0x400000, CRC(e5779a3c) SHA1(bbd7fbe061e751388d2f02434144daf9b1e36640) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "btc.17m", 0x000004, 0x400000, CRC(b33f4112) SHA1(e501fd921c8bcede69946b029e05d422714c1040) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "btc.19m", 0x000006, 0x400000, CRC(a6fcdb7e) SHA1(7a28d5d7aa036d23d97fad17d0cdb8210dc8153a) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 )
+ ROM_LOAD( "btc.01", 0x00000, 0x08000, CRC(1e194310) SHA1(3b29de0aca9dbca59d6b50fb2509e2a913c6b0af) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "btc.02", 0x28000, 0x20000, CRC(01aeb8e6) SHA1(50a5d1cce0caf7c5143d4904431e8f41e2a57464) )
+
+ ROM_REGION( 0x400000, "qsound", 0 )
+ ROM_LOAD16_WORD_SWAP( "btc.11m", 0x000000, 0x200000, CRC(c27f2229) SHA1(df2459493af40937b6656a16fad43ff51bed2204) )
+ ROM_LOAD16_WORD_SWAP( "btc.12m", 0x200000, 0x200000, CRC(418a2e33) SHA1(0642ddff2ab9255f154419da24ba644ed63f34ab) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "phoenix.key", 0x000000, 0x000014, CRC(2cf772b0) SHA1(eff33c65a4f3862c231f9e4d6fefa7b34398dbf2) )
+ROM_END
+
/******************
Capcom Sports Club
*********************/
@@ -5716,6 +5752,8 @@ HACK( 2000, 1944s01, 1944, cps2, cps2_2p2b, cps2_state, cps2, ROT0,
//Alien vs. Predator
HACK( 2017, avspus01, avsp, cps2, cps2_3p3b, cps2_state, cps2, ROT0, "hack", "Alien vs. Predator (1 Vs 3 Plus 2017-12-30)", MACHINE_SUPPORTS_SAVE )
HACK( 2018, avspus02, avsp, cps2, cps2_3p3b, cps2_state, cps2, ROT0, "hack", "Alien vs. Predator (Enhanced Edition 2018-02-26)", MACHINE_SUPPORTS_SAVE )
+//Battle Circuit
+HACK( 2019, batcirds01, batcir, dead_cps2, cps2_4p2b, cps2_state, cps2, ROT0, "hack", "Battle Circuit (Evolution 2019-10-21)", MACHINE_SUPPORTS_SAVE )
// Capcom Sports Club
HACK( 1997, csclubs01, csclub, cps2, cps2_2p3b, cps2_state, cps2, ROT0, "Hooooook[Chinese cabbage loves me]", "Capcom Sports Club (Time Increases)", MACHINE_SUPPORTS_SAVE )
// Cyberbots Fullmetal Madness
diff --git a/docs/release/src/hbmame/drivers/fcrash.cpp b/docs/release/src/hbmame/drivers/fcrash.cpp
index de1c975daf7..45e9aa34222 100644
--- a/docs/release/src/hbmame/drivers/fcrash.cpp
+++ b/docs/release/src/hbmame/drivers/fcrash.cpp
@@ -1984,9 +1984,9 @@ ROM_END
void cps_state::init_kodb()
{
m_maincpu->space(AS_PROGRAM).install_read_port(0x800000, 0x800007, "IN1");
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x800018, 0x80001f, read16_delegate(FUNC(cps_state::cps1_dsw_r),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x800180, 0x800187, write16_delegate(FUNC(cps_state::cps1_soundlatch_w),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x980000, 0x98002f, write16_delegate(FUNC(cps_state::kodb_layer_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x800018, 0x80001f, read16_delegate(*this, FUNC(cps_state::cps1_dsw_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x800180, 0x800187, write16_delegate(*this, FUNC(cps_state::cps1_soundlatch_w)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x980000, 0x98002f, write16_delegate(*this, FUNC(cps_state::kodb_layer_w)));
/* the original game alternates between 2 sprite ram areas to achieve flashing sprites - the bootleg doesn't do the write to the register to achieve this
mapping both sprite ram areas to the same bootleg sprite ram - similar to how sf2mdt works */
@@ -2120,8 +2120,8 @@ ROM_END
void cps_state::init_cawingbl()
{
m_maincpu->space(AS_PROGRAM).install_read_port(0x882000, 0x882001, "IN1");
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x882006, 0x882007, write16_delegate(FUNC(cps_state::cawingbl_soundlatch_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x882008, 0x88200f, read16_delegate(FUNC(cps_state::cps1_dsw_r),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x882006, 0x882007, write16_delegate(*this, FUNC(cps_state::cawingbl_soundlatch_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x882008, 0x88200f, read16_delegate(*this, FUNC(cps_state::cps1_dsw_r)));
init_cps1();
}
@@ -2918,7 +2918,7 @@ void cps_state::init_sf2mdt()
rom[i + 6] = tmp;
}
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x708100, 0x7081ff, write16_delegate(FUNC(cps_state::sf2mdt_layer_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x708100, 0x7081ff, write16_delegate(*this, FUNC(cps_state::sf2mdt_layer_w)));
init_sf2mdta();
}
diff --git a/docs/release/src/hbmame/drivers/kof2002.cpp b/docs/release/src/hbmame/drivers/kof2002.cpp
index cc29b060c56..3240c839444 100644
--- a/docs/release/src/hbmame/drivers/kof2002.cpp
+++ b/docs/release/src/hbmame/drivers/kof2002.cpp
@@ -11716,6 +11716,32 @@ ROM_START( kof2k2s84 )
ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
ROM_END
+ROM_START( kof2k2s85 ) //kof2k2c2p
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265k2s85.p1", 0x000000, 0x100000, CRC(470c0468) SHA1(c391e49d06fd2bd54a6167885e7d40b734dc11d3) )
+ ROM_LOAD16_WORD_SWAP( "265k2s85.p2", 0x100000, 0x400000, CRC(52bdc663) SHA1(563bef5a07dc31c07e755fd7997a058469fe957f) )
+
+ NEO_SFIX_128K( "265kc2.s1", CRC(67e7cbe1) SHA1(3582c2073f04e71a6d5a34145727d148a11ab375) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265k2s85.c1", 0x0000000, 0x800000, CRC(232cdaea) SHA1(06995c0b281c1c8369c8cd38b73e3e3b4c280cb2) )
+ ROM_LOAD16_BYTE( "265k2s85.c2", 0x0000001, 0x800000, CRC(9426dec3) SHA1(4dcdcf1716012f3ea490400851aa2701f21ddad7) )
+ ROM_LOAD16_BYTE( "265k2s85.c3", 0x1000000, 0x800000, CRC(0ee6f629) SHA1(346508bccf721a23ffde973456aa2a9240ecb039) )
+ ROM_LOAD16_BYTE( "265k2s85.c4", 0x1000001, 0x800000, CRC(456a8970) SHA1(9714ddc4f7c2c3b499d82fb1d3278a938944fa28) )
+ ROM_LOAD16_BYTE( "265k2s85.c5", 0x2000000, 0x800000, CRC(abd055d6) SHA1(47fb99ef5af763d9657ec94a0e67feee3edaf281) )
+ ROM_LOAD16_BYTE( "265k2s85.c6", 0x2000001, 0x800000, CRC(bd4bfd7f) SHA1(b5f037627782a03eafdde1523ceb52771cc73c46) )
+ ROM_LOAD16_BYTE( "265k2s85.c7", 0x3000000, 0x800000, CRC(b5ba8b2e) SHA1(9c2a7bf19dacf19388e39f56e590a876ad6a48f6) )
+ ROM_LOAD16_BYTE( "265k2s85.c8", 0x3000001, 0x800000, CRC(7ede867d) SHA1(4a79b58d4cd587a8b0ac01a679c2de41585c1610) )
+ROM_END
+
/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS */
// The King of Fighters '2002
HACK( 2005, kof2002s01, kof2002, neogeo_noslot, neogeo, neogeo_state, kof2002, ROT0, "KyoX", "Kof2002 (Translation Portuguese 2005-09-25)" , MACHINE_SUPPORTS_SAVE )
@@ -12028,4 +12054,5 @@ HACK( 2019, kof2k2s81, kof2002, neogeo_noslot, neogeo, neogeo_state,
HACK( 2019, kof2k2s82, kof2002, gsc, neogeo, neogeo_state, kof2k2pl17, ROT0, "GSC2007", "Kof2002 Plus (2019-01-06 Hack)" , MACHINE_SUPPORTS_SAVE )
HACK( 2019, kof2k2s83, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2002 (All Mix Version 2018-04-22)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
HACK( 2019, kof2k2s84, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "GSC2007", "Kof2002 (Unknown Hack 2014-12-01)", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, kof2k2s85, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2002 (Tianguo Protoss 2019-10-21)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/maketrax.cpp b/docs/release/src/hbmame/drivers/maketrax.cpp
index e43947b4338..3914fcb12d8 100644
--- a/docs/release/src/hbmame/drivers/maketrax.cpp
+++ b/docs/release/src/hbmame/drivers/maketrax.cpp
@@ -243,9 +243,9 @@ MACHINE_RESET_MEMBER(pacman_state,maketrax)
void pacman_state::init_maketrax()
{
/* set up protection handlers */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x5004, 0x5004, write8_delegate(FUNC(pacman_state::maketrax_protection_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x5080, 0x50bf, read8_delegate(FUNC(pacman_state::maketrax_special_port2_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x50c0, 0x50ff, read8_delegate(FUNC(pacman_state::maketrax_special_port3_r),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x5004, 0x5004, write8_delegate(*this, FUNC(pacman_state::maketrax_protection_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x5080, 0x50bf, read8_delegate(*this, FUNC(pacman_state::maketrax_special_port2_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x50c0, 0x50ff, read8_delegate(*this, FUNC(pacman_state::maketrax_special_port3_r)));
save_item(NAME(m_maketrax_disable_protection));
save_item(NAME(m_maketrax_offset));
diff --git a/docs/release/src/hbmame/drivers/mhavoc.cpp b/docs/release/src/hbmame/drivers/mhavoc.cpp
index d74013afc63..72981b4357d 100644
--- a/docs/release/src/hbmame/drivers/mhavoc.cpp
+++ b/docs/release/src/hbmame/drivers/mhavoc.cpp
@@ -41,7 +41,7 @@ void mhavoc_state::alphape_map(address_map &map)
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(0x1740, 0x1740).lw8(NAME([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 */
diff --git a/docs/release/src/hbmame/drivers/mslug5.cpp b/docs/release/src/hbmame/drivers/mslug5.cpp
index 0c9066ae0ec..d41c0d60662 100644
--- a/docs/release/src/hbmame/drivers/mslug5.cpp
+++ b/docs/release/src/hbmame/drivers/mslug5.cpp
@@ -1974,6 +1974,56 @@ ROM_START( mslug5dh57 )
ROM_LOAD16_BYTE( "268d.c8", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) )
ROM_END
+ROM_START( mslug5dh58 ) //mslug5dg2
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268dh58.p1", 0x000000, 0x600000, CRC(1f8a0da6) SHA1(97e62525d360c28bdc0f8f595e05c4368aff305c) )
+
+ NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
+
+ NEO_BIOS_AUDIO_128K( "268nd.m1", CRC(6FA01C9A) SHA1(3DAB7593BFCCE318D22EC3DF672EE3B4AB73DCF5) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268boot.v1", 0x000000, 0x400000, CRC(c3540e0d) SHA1(bf7ca3abe291b28a4cfaef791f0c556cc98ad8d8) )
+ ROM_LOAD( "268boot.v2", 0x400000, 0x400000, CRC(077bd2f4) SHA1(1699959d17f8c7113cebdb9da2e1cd18ce48486c) )
+ ROM_LOAD( "268boot.v3", 0x800000, 0x400000, CRC(39b14567) SHA1(1658612a93ba30130f9260bc41d3f18f6b90c1e7) )
+ ROM_LOAD( "268boot.v4", 0xc00000, 0x400000, CRC(969ff3b2) SHA1(50feceb741a1c08b000b077a33151ab1352eb798) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268d.c1", 0x0000000, 0x800000, CRC(969c0d62) SHA1(DE3C5CFA980CCA2FAB0416AC0D292948B5D4C9C3) )
+ ROM_LOAD16_BYTE( "268d.c2", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198EE5C7C2C7563B49EBD9F7BA95D9B0B303F6C) )
+ ROM_LOAD16_BYTE( "268d.c3", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443EA4C1BAB45F1977A390EB7E1A0163915110) )
+ ROM_LOAD16_BYTE( "268nd.c4", 0x1000001, 0x800000, CRC(E1B1131B) SHA1(68A36D336582069E79AD481638D92F57C4CD6523) )
+ ROM_LOAD16_BYTE( "268d.c5", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4AE15D29BA979601598EDDF8905072FE1D9E0A98) )
+ ROM_LOAD16_BYTE( "268d.c6", 0x2000001, 0x800000, CRC(6de89589) SHA1(86A6C036BF51AF516FEA83A30874026EC1586A83) )
+ ROM_LOAD16_BYTE( "268d.c7", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30F3280FE527098ECF46541CC645A59B366105EA) )
+ ROM_LOAD16_BYTE( "268d.c8", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) )
+ROM_END
+
+ROM_START( mslug5dh59 ) //mslug5dmg
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268dh59.p1", 0x000000, 0x600000, CRC(fa425c4c) SHA1(8cc1cd2b30cd5ad3fa11c2982131757728afed7a) )
+
+ NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
+
+ NEO_BIOS_AUDIO_128K( "268nd.m1", CRC(6FA01C9A) SHA1(3DAB7593BFCCE318D22EC3DF672EE3B4AB73DCF5) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268boot.v1", 0x000000, 0x400000, CRC(c3540e0d) SHA1(bf7ca3abe291b28a4cfaef791f0c556cc98ad8d8) )
+ ROM_LOAD( "268boot.v2", 0x400000, 0x400000, CRC(077bd2f4) SHA1(1699959d17f8c7113cebdb9da2e1cd18ce48486c) )
+ ROM_LOAD( "268boot.v3", 0x800000, 0x400000, CRC(39b14567) SHA1(1658612a93ba30130f9260bc41d3f18f6b90c1e7) )
+ ROM_LOAD( "268boot.v4", 0xc00000, 0x400000, CRC(969ff3b2) SHA1(50feceb741a1c08b000b077a33151ab1352eb798) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268d.c1", 0x0000000, 0x800000, CRC(969c0d62) SHA1(DE3C5CFA980CCA2FAB0416AC0D292948B5D4C9C3) )
+ ROM_LOAD16_BYTE( "268d.c2", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198EE5C7C2C7563B49EBD9F7BA95D9B0B303F6C) )
+ ROM_LOAD16_BYTE( "268d.c3", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443EA4C1BAB45F1977A390EB7E1A0163915110) )
+ ROM_LOAD16_BYTE( "268nd.c4", 0x1000001, 0x800000, CRC(E1B1131B) SHA1(68A36D336582069E79AD481638D92F57C4CD6523) )
+ ROM_LOAD16_BYTE( "268d.c5", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4AE15D29BA979601598EDDF8905072FE1D9E0A98) )
+ ROM_LOAD16_BYTE( "268d.c6", 0x2000001, 0x800000, CRC(6de89589) SHA1(86A6C036BF51AF516FEA83A30874026EC1586A83) )
+ ROM_LOAD16_BYTE( "268d.c7", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30F3280FE527098ECF46541CC645A59B366105EA) )
+ ROM_LOAD16_BYTE( "268d.c8", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) )
+ROM_END
+
ROM_START( ms5plusrm01 )
ROM_REGION( 0x500000, "maincpu", 0 )
ROM_LOAD16_WORD_SWAP( "ms5plusrm01.p1", 0x000000, 0x100000, CRC(3a3d1750) SHA1(dddd645e88e2e483fa50e1dc55b2e06ab3dacfec) )
@@ -7394,7 +7444,7 @@ ROM_END
ROM_START( mslug5res01 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268res01.p1", 0x000000, 0x600000, CRC(d28eaff4) SHA1(89939fb70694add0d24525dab1e1fcd492159c65) )
+ ROM_LOAD16_WORD_SWAP( "268res01.p1", 0x000000, 0x600000, CRC(0944d145) SHA1(395ed5e8c3dd8e79e0522859a1e00e14174e1db9) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -7428,7 +7478,7 @@ ROM_END
ROM_START( mslug5res02 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268res02.p1", 0x000000, 0x600000, CRC(5ad1e813) SHA1(38a29839f1fac75a1b728f00488b4333ddfb1897) )
+ ROM_LOAD16_WORD_SWAP( "268res02.p1", 0x000000, 0x600000, CRC(811b96a2) SHA1(ac236e39a6c998c86221098be4d82eb605f9fcf5) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -7462,7 +7512,7 @@ ROM_END
ROM_START( mslug5res03 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268res03.p1", 0x000000, 0x600000, CRC(22e4d54e) SHA1(dbc84434d217ad210804676c440e71ec3ed2e5d4) )
+ ROM_LOAD16_WORD_SWAP( "268res03.p1", 0x000000, 0x600000, CRC(f92eabff) SHA1(7b7f52c53a90a453ebb8ab900fa3f023eabad5a6) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -7496,7 +7546,7 @@ ROM_END
ROM_START( mslug5res04 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268res04.p1", 0x000000, 0x600000, CRC(5a7e545e) SHA1(7cc608eadff820fe2a4b8267d21eedf29aa7ecd3) )
+ ROM_LOAD16_WORD_SWAP( "268res04.p1", 0x000000, 0x600000, CRC(81b42aef) SHA1(cf4bd60e837df6c4020e60b4f40734152d1670cd) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -7530,7 +7580,7 @@ ROM_END
ROM_START( mslug5res05 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268res05.p1", 0x000000, 0x600000, CRC(d22113b9) SHA1(2f77bf913c7d53b171bcc446f468800427171870) )
+ ROM_LOAD16_WORD_SWAP( "268res05.p1", 0x000000, 0x600000, CRC(09eb6d08) SHA1(78a487d908a1a9933cdc9832d3d18641d0a50327) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -7564,7 +7614,7 @@ ROM_END
ROM_START( mslug5res06 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268res06.p1", 0x000000, 0x600000, CRC(aa142ee4) SHA1(0e754cd4500a747c3eca96a165333964139d4617) )
+ ROM_LOAD16_WORD_SWAP( "268res06.p1", 0x000000, 0x600000, CRC(71de5055) SHA1(b3892a304ed092447d0328da5c6b74771c5ee197) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -7598,7 +7648,7 @@ ROM_END
ROM_START( mslug5res07 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268res07.p1", 0x000000, 0x600000, CRC(94feff07) SHA1(b87275e1978523e1cbe9e6695558ef39496f1805) )
+ ROM_LOAD16_WORD_SWAP( "268res07.p1", 0x000000, 0x600000, CRC(4f3481b6) SHA1(fcfbfb8f8ca8bce4ba72e1fe75cbdc11af769c88) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -7632,7 +7682,7 @@ ROM_END
ROM_START( mslug5res08 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268res08.p1", 0x000000, 0x600000, CRC(1ca1b8e0) SHA1(8addff49fe06875a0f857efeb16f9229569533d1) )
+ ROM_LOAD16_WORD_SWAP( "268res08.p1", 0x000000, 0x600000, CRC(c76bc651) SHA1(03e8a17857c169442c876a9bf49bc8c046acf9c2) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -7666,7 +7716,7 @@ ROM_END
ROM_START( mslug5res09 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268res09.p1", 0x000000, 0x600000, CRC(649485bd) SHA1(ccc3e85a445c2d8821d5f82a5879c4c8e73ea2e8) )
+ ROM_LOAD16_WORD_SWAP( "268res09.p1", 0x000000, 0x600000, CRC(bf5efb0c) SHA1(2201347f2d3c39f06504dd3e7b0ee0ef1ec27a52) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -7700,7 +7750,7 @@ ROM_END
ROM_START( mslug5res10 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268res10.p1", 0x000000, 0x600000, CRC(1c0e04ad) SHA1(83865148ca83be66fa84264679403fe7c0c27898) )
+ ROM_LOAD16_WORD_SWAP( "268res10.p1", 0x000000, 0x600000, CRC(c7c47a1c) SHA1(a00fe677c770a43d117a6c0813db681e14ec51cd) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -7734,7 +7784,7 @@ ROM_END
ROM_START( mslug5res11 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268res11.p1", 0x000000, 0x600000, CRC(9451434a) SHA1(3c720824f017ff7744afaa16d0e7b2f749ccac22) )
+ ROM_LOAD16_WORD_SWAP( "268res11.p1", 0x000000, 0x600000, CRC(4f9b3dfb) SHA1(23a2f3fbfda4b5e474c771f6dc40aea746c266ec) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -7768,7 +7818,7 @@ ROM_END
ROM_START( mslug5res12 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268res12.p1", 0x000000, 0x600000, CRC(ec647e17) SHA1(417226fcb2c47436389d5aa68c137961cbc2d8be) )
+ ROM_LOAD16_WORD_SWAP( "268res12.p1", 0x000000, 0x600000, CRC(37ae00a6) SHA1(d85cf61646ae002b8bf67392d5e7d226f6e0af9c) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -7802,7 +7852,7 @@ ROM_END
ROM_START( mslug5res13 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268res13.p1", 0x000000, 0x600000, CRC(daae1b6c) SHA1(5eb4c93d356076a3e83486df9c25adce1356395b) )
+ ROM_LOAD16_WORD_SWAP( "268res13.p1", 0x000000, 0x600000, CRC(016465dd) SHA1(d989a9e0e57debef93ffb895fcf550ff9d853d5a) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -7836,7 +7886,7 @@ ROM_END
ROM_START( mslug5res14 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268res14.p1", 0x000000, 0x600000, CRC(52f15c8b) SHA1(25c41d45b0d1f0bcfcf42f38f7146317aa37ea55) )
+ ROM_LOAD16_WORD_SWAP( "268res14.p1", 0x000000, 0x600000, CRC(893b223a) SHA1(93ba5a53d3da3a60bd56ccf8acdf72636fdf4795) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -7870,7 +7920,7 @@ ROM_END
ROM_START( mslug5res15 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268res15.p1", 0x000000, 0x600000, CRC(2ac461d6) SHA1(665ddc828954a496b4d049735eb92e1dd911a7fb) )
+ ROM_LOAD16_WORD_SWAP( "268res15.p1", 0x000000, 0x600000, CRC(f10e1f67) SHA1(00a3405a7a1e07e95a5c472fe3857113839c9af6) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -7904,7 +7954,7 @@ ROM_END
ROM_START( mslug5res16 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268res16.p1", 0x000000, 0x600000, CRC(c6df9c88) SHA1(cae132a7bf02f61a8b43e8bdb0e8941901a36aa9) )
+ ROM_LOAD16_WORD_SWAP( "268res16.p1", 0x000000, 0x600000, CRC(1d15e239) SHA1(43487e9cd78f7a19a2183134c1f5e495867e5862) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -7938,7 +7988,7 @@ ROM_END
ROM_START( mslug5res17 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268res17.p1", 0x000000, 0x600000, CRC(4e80db6f) SHA1(8b7d9cbecba304c1bc0e859c97a19eeab2ee1163) )
+ ROM_LOAD16_WORD_SWAP( "268res17.p1", 0x000000, 0x600000, CRC(954aa5de) SHA1(92519a773366a3cc91f14babdb39430d916cd807) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -7972,7 +8022,7 @@ ROM_END
ROM_START( mslug5res18 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268res18.p1", 0x000000, 0x600000, CRC(36b5e632) SHA1(f9f492759513e5853bf6661791fa888163b3b33e) )
+ ROM_LOAD16_WORD_SWAP( "268res18.p1", 0x000000, 0x600000, CRC(ed7f9883) SHA1(9ec6c9df64e418f9282760f44a569f577fe636b2) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -8006,7 +8056,7 @@ ROM_END
ROM_START( mslug5res19 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268res19.p1", 0x000000, 0x600000, CRC(90eea54b) SHA1(46b1d6876f0f03d7dfe76a367e39ab649dbf886a) )
+ ROM_LOAD16_WORD_SWAP( "268res19.p1", 0x000000, 0x600000, CRC(4b24dbfa) SHA1(111cc7cfeaa37d258d2841f05d9bad4e6fe012d9) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -8040,7 +8090,7 @@ ROM_END
ROM_START( mslug5res20 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268res20.p1", 0x000000, 0x600000, CRC(18b1e2ac) SHA1(cb575e43da10783b6eb419777dd779734f1d3395) )
+ ROM_LOAD16_WORD_SWAP( "268res20.p1", 0x000000, 0x600000, CRC(c37b9c1d) SHA1(7dc9cde49e8a6202db7d1af78429b8833e00737d) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -8074,7 +8124,7 @@ ROM_END
ROM_START( mslug5res21 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268res21.p1", 0x000000, 0x600000, CRC(6084dff1) SHA1(4842b8c27b3cb257dc5415c074f14ec35a94f2cd) )
+ ROM_LOAD16_WORD_SWAP( "268res21.p1", 0x000000, 0x600000, CRC(bb4ea140) SHA1(c6bb4641bbc5ac1223159667bd380ab0f3c4df9d) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -8108,7 +8158,7 @@ ROM_END
ROM_START( mslug5res22 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268res22.p1", 0x000000, 0x600000, CRC(181e5ee1) SHA1(584582dfc0adc39652f70eecd87a0c31c74b0e56) )
+ ROM_LOAD16_WORD_SWAP( "268res22.p1", 0x000000, 0x600000, CRC(c3d42050) SHA1(9c84752cc454cfd2f2e0f7f3dba33bcc689a4302) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -8142,7 +8192,7 @@ ROM_END
ROM_START( mslug5res23 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268res23.p1", 0x000000, 0x600000, CRC(90411906) SHA1(332de6a4993a40f80a1457929cc5dbae788ce063) )
+ ROM_LOAD16_WORD_SWAP( "268res23.p1", 0x000000, 0x600000, CRC(4b8b67b7) SHA1(214748840677791f00d5735385831f9da817766e) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -8176,7 +8226,7 @@ ROM_END
ROM_START( mslug5res24 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268res24.p1", 0x000000, 0x600000, CRC(e874245b) SHA1(399196621d6e4c264ea7a63a43c536e1e956b013) )
+ ROM_LOAD16_WORD_SWAP( "268res24.p1", 0x000000, 0x600000, CRC(33be5aea) SHA1(17a3fed68e53c469d42b5ce5f15c1f073c0aee25) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -9842,7 +9892,7 @@ ROM_END
ROM_START( mslug5ervn01 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervnxc01.p1", 0x000000, 0x600000, CRC(1a84181e) SHA1(45332c8ab3e0895c110b239dfab966e01d8357c6) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc01.p1", 0x000000, 0x600000, CRC(ec8c80af) SHA1(1aaf1debbc98cf7347fa542ab58d47bed13dc095) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -9876,7 +9926,7 @@ ROM_END
ROM_START( mslug5ervn02 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervnxc02.p1", 0x000000, 0x600000, CRC(92db5ff9) SHA1(56bc8684eb1b6ee30c08e92de4a9bf9cbaeca017) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc02.p1", 0x000000, 0x600000, CRC(64d3c748) SHA1(347052c83c44459a516487cfedb80e633f4e583a) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -9910,7 +9960,7 @@ ROM_END
ROM_START( mslug5ervn03 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervnxc03.p1", 0x000000, 0x600000, CRC(eaee62a4) SHA1(225fcaab90c4840e9e4ac57cc57643fa20f03914) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc03.p1", 0x000000, 0x600000, CRC(1ce6fa15) SHA1(310caa845e5622f7afc9207b73d0376737f11b5c) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -9944,7 +9994,7 @@ ROM_END
ROM_START( mslug5ervn04 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervnxc04.p1", 0x000000, 0x600000, CRC(9274e3b4) SHA1(735505b47c839425d1b5b15c58b27aec64b29dd7) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc04.p1", 0x000000, 0x600000, CRC(647c7b05) SHA1(8eed19315b0d1c068cb4af68d0b5c6eb02a3bbf2) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -9978,7 +10028,7 @@ ROM_END
ROM_START( mslug5ervn05 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervnxc05.p1", 0x000000, 0x600000, CRC(1a2ba453) SHA1(c8c5c526aaf1376879a07666c1ec0b4267676ea1) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc05.p1", 0x000000, 0x600000, CRC(ec233ce2) SHA1(0c5ae2bb8ccae57c2edfe208499939f95e7809b9) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -10012,7 +10062,7 @@ ROM_END
ROM_START( mslug5ervn06 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervnxc06.p1", 0x000000, 0x600000, CRC(621e990e) SHA1(9580a4b23ab2436ebb7f13cdd46849b7c9f6fe64) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc06.p1", 0x000000, 0x600000, CRC(941601bf) SHA1(6c37fb0268df99ea1287ff69f139f47a49769aa3) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -10046,7 +10096,7 @@ ROM_END
ROM_START( mslug5ervn07 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervnxc07.p1", 0x000000, 0x600000, CRC(5cf448ed) SHA1(b20267ae92d7b48c84c546aac8f644b2e262f360) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc07.p1", 0x000000, 0x600000, CRC(aafcd05c) SHA1(2f3e1d1655ddbc1055781818b4b9973529fda727) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -10080,7 +10130,7 @@ ROM_END
ROM_START( mslug5ervn08 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervnxc08.p1", 0x000000, 0x600000, CRC(d4ab0f0a) SHA1(8ce0eb44ccf5733396eed3cb7117cbc97c9db5a4) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc08.p1", 0x000000, 0x600000, CRC(22a397bb) SHA1(d95a90e7e2717be4ffc0bc725a17132f029bcf2e) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -10114,7 +10164,7 @@ ROM_END
ROM_START( mslug5ervn09 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervnxc09.p1", 0x000000, 0x600000, CRC(ac9e3257) SHA1(5ad3f7270758bdd0131198b394f0bbf90c606cf9) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc09.p1", 0x000000, 0x600000, CRC(5a96aae6) SHA1(8a2acd181e1d15073246fcf838e56316c2dfcd39) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -10148,7 +10198,7 @@ ROM_END
ROM_START( mslug5ervn10 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervnxc10.p1", 0x000000, 0x600000, CRC(d404b347) SHA1(3345aaa9adaca0ffbc37318e126a51411b01c19a) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc10.p1", 0x000000, 0x600000, CRC(220c2bf6) SHA1(d52116db3ec232ca6b4d48448be85b586d2d854b) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -10182,7 +10232,7 @@ ROM_END
ROM_START( mslug5ervn11 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervnxc11.p1", 0x000000, 0x600000, CRC(5c5bf4a0) SHA1(9be4fd03d683cac45399c595f54f7ff82de5af84) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc11.p1", 0x000000, 0x600000, CRC(aa536c11) SHA1(7e830e0c2811b3bd37b2ba9ff203394c31b7fbbe) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -10216,7 +10266,7 @@ ROM_END
ROM_START( mslug5ervn12 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervnxc12.p1", 0x000000, 0x600000, CRC(246ec9fd) SHA1(ddfb75ded2a271bbff37ea6df8a3a9117dd47080) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc12.p1", 0x000000, 0x600000, CRC(d266514c) SHA1(66ea11a91c4f9ee933efe821fded21f8852a095a) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -10250,7 +10300,7 @@ ROM_END
ROM_START( mslug5ervn13 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervnxc13.p1", 0x000000, 0x600000, CRC(12a4ac86) SHA1(ab48e1953b29c74a9b17e1f7f1901d6a6cac07b9) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc13.p1", 0x000000, 0x600000, CRC(e4ac3437) SHA1(9e53a6fdf36ef9baa8fc09298717ca461f275f67) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -10284,7 +10334,7 @@ ROM_END
ROM_START( mslug5ervn14 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervnxc14.p1", 0x000000, 0x600000, CRC(9afbeb61) SHA1(e43f069e3a837f10fcd7a87f00ec7eb4d8d1f071) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc14.p1", 0x000000, 0x600000, CRC(6cf373d0) SHA1(6537f1e01bbd6a84e6e8ead75f138bc850aba58c) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -10318,7 +10368,7 @@ ROM_END
ROM_START( mslug5ervn15 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervnxc15.p1", 0x000000, 0x600000, CRC(e2ced63c) SHA1(0cddbd2ff179849d8fd4dd421364aaa9c3dde17f) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc15.p1", 0x000000, 0x600000, CRC(14c64e8d) SHA1(beb9b972668844c0f4ca9577a575acf7616f3a0d) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -10352,7 +10402,7 @@ ROM_END
ROM_START( mslug5ervn16 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervnxc16.p1", 0x000000, 0x600000, CRC(0ed52b62) SHA1(5a329f423a8efd1252c82ffe4619a2cf90c3fbb4) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc16.p1", 0x000000, 0x600000, CRC(f8ddb3d3) SHA1(d50bef329d930d9cc2154051c0e89d2091d06c57) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -10386,7 +10436,7 @@ ROM_END
ROM_START( mslug5ervn17 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervnxc17.p1", 0x000000, 0x600000, CRC(868a6c85) SHA1(f015513f7f999924bc2f1aace7993bdab607da2a) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc17.p1", 0x000000, 0x600000, CRC(7082f434) SHA1(3249dcdccd37fc78aa7ad7aec34cef2737142cd3) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -10420,7 +10470,7 @@ ROM_END
ROM_START( mslug5ervn18 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervnxc18.p1", 0x000000, 0x600000, CRC(febf51d8) SHA1(a7947c3eba394bec9eedc65f25c003e00af1fd56) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc18.p1", 0x000000, 0x600000, CRC(08b7c969) SHA1(18cf8ae126b6fc0007e90077773650769d38c49c) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -10454,7 +10504,7 @@ ROM_END
ROM_START( mslug5ervn19 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervnxc19.p1", 0x000000, 0x600000, CRC(58e412a1) SHA1(f9b99d0a9d0b0b7e2d2130ff6621a542dfd51002) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc19.p1", 0x000000, 0x600000, CRC(aeec8a10) SHA1(45b68f43e717747716d9164ebe32b15a90bb3a44) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -10488,7 +10538,7 @@ ROM_END
ROM_START( mslug5ervn20 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervnxc20.p1", 0x000000, 0x600000, CRC(d0bb5546) SHA1(c0ac831c3563047fe42f9f95fa53478a02391d33) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc20.p1", 0x000000, 0x600000, CRC(26b3cdf7) SHA1(9c322433a2200d5594f2cd3b8d99dfff82378ad8) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -10522,7 +10572,7 @@ ROM_END
ROM_START( mslug5ervn21 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervnxc21.p1", 0x000000, 0x600000, CRC(a88e681b) SHA1(847974c757bdf9af662128f5900572459295ca4a) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc21.p1", 0x000000, 0x600000, CRC(5e86f0aa) SHA1(1e8de4e4273b1835ea05631c2c5f8483be72bd72) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -10556,7 +10606,7 @@ ROM_END
ROM_START( mslug5ervn22 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervnxc22.p1", 0x000000, 0x600000, CRC(d014e90b) SHA1(0f8775cd3e90b041ca22bb536a0dbf11b1f0ecb4) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc22.p1", 0x000000, 0x600000, CRC(261c71ba) SHA1(09fd0b963c833bfa8c79491066ae8178673f0296) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -10590,7 +10640,7 @@ ROM_END
ROM_START( mslug5ervn23 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervnxc23.p1", 0x000000, 0x600000, CRC(584baeec) SHA1(1b94286e2147eee0a6ad70ae8aa62784089bb9f0) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc23.p1", 0x000000, 0x600000, CRC(ae43365d) SHA1(251c2fcc679c1ad02e2bf6e79af8c01d8af68352) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -10624,7 +10674,7 @@ ROM_END
ROM_START( mslug5ervn24 )
ROM_REGION( 0x600000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "268ervnxc24.p1", 0x000000, 0x600000, CRC(207e93b1) SHA1(6e1cfaf055745174357a93b1d21f5278df9f0aea) )
+ ROM_LOAD16_WORD_SWAP( "268ervnxc24.p1", 0x000000, 0x600000, CRC(d6760b00) SHA1(4bbc1104f48e771e17a1ea89cd8f2ca23aa62a69) )
NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
@@ -14251,6 +14301,8 @@ HACK( 2019, mslug5dh54, mslug5, neogeo_noslot, neogeo, neogeo_state, neogeo
HACK( 2019, mslug5dh55, mslug5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-05-27)", MACHINE_SUPPORTS_SAVE )
HACK( 2019, mslug5dh56, mslug5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "XiaShuiDaoMeiRenYu", "Metal Slug 5 (Enemies Resetting Version 2019-06-09)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) //You cannot go beyond the fourth level
HACK( 2019, mslug5dh57, mslug5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Metal Slug 5 (Generation 1V2 2019-05-11)", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5dh58, mslug5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "YouGuDuoLa", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-10-21)", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5dh59, mslug5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-10-21)", MACHINE_SUPPORTS_SAVE )
HACK( 2019, ms5plusrm01, mslug5, neogeo_noslot, neogeo, neogeo_state, ms5plus, ROT0, "Team Remix(Gaston90,lb70,DDJ)", "Metal Slug 5 Plus (Revised Version Mix 1.0 [2019-02-25])", MACHINE_SUPPORTS_SAVE )
HACK( 2019, ms5plusrm02, mslug5, neogeo_noslot, neogeo, neogeo_state, ms5plus, ROT0, "Team Remix(Gaston90,lb70,DDJ,remikare)", "Metal Slug 5 Plus (Revised Version Mix 1.0 [Color Modification V1][2019-02-25])", MACHINE_SUPPORTS_SAVE )
HACK( 2019, ms5plusrm03, mslug5, neogeo_noslot, neogeo, neogeo_state, ms5plus, ROT0, "Team Remix(Gaston90,lb70,DDJ,remikare)", "Metal Slug 5 Plus (Revised Version Mix 1.0 [Color Modification V2][2019-02-25])", MACHINE_SUPPORTS_SAVE )
@@ -14413,30 +14465,30 @@ HACK( 2019, mslug5rmnm87, mslug5, neogeo_noslot, neogeo, neogeo_state, mslu
HACK( 2019, mslug5rmnm88, mslug5, neogeo_noslot, neogeo, neogeo_state, mslug5hb, ROT0, "Team Remix(Gaston90/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Revised Version Super Grenade Mix 1.2 [2019-02-25])", MACHINE_SUPPORTS_SAVE )
HACK( 2019, mslug5rmnm89, mslug5, neogeo_noslot, neogeo, neogeo_state, mslug5hb, ROT0, "Team Remix(Gaston90/Creamymami[EGCG]/DDJ/remikare)", "Metal Slug 5 (Revised Version Super Grenade Mix 1.2 [Color Modification V1] [2019-02-25])", MACHINE_SUPPORTS_SAVE )
HACK( 2019, mslug5rmnm90, mslug5, neogeo_noslot, neogeo, neogeo_state, mslug5hb, ROT0, "Team Remix(Gaston90/Creamymami[EGCG]/DDJ/remikare)", "Metal Slug 5 (Revised Version Super Grenade Mix 1.2 [Color Modification V2] [2019-02-25])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5res01, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-04-18)(Revised Version Big Flame Shot Mix 1.0 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5res02, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-04-18)(Revised Version Big Flame Shot Mix 1.1 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5res03, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-04-18)(Revised Version Big Flame Shot Mix 1.2 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5res04, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-04-18)(Revised Version Big Heavy Machine Gun Mix 1.0 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5res05, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-04-18)(Revised Version Big Heavy Machine Gun Mix 1.1 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5res06, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-04-18)(Revised Version Big Heavy Machine Gun Mix 1.2 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5res07, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-04-18)(Revised Version Big Laser Mix 1.0 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5res08, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-04-18)(Revised Version Big Laser Mix 1.1 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5res09, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-04-18)(Revised Version Big Laser Mix 1.2 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5res10, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-04-18)(Revised Version Big Rocket Launcher Mix 1.0 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5res11, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-04-18)(Revised Version Big Rocket Launcher Mix 1.1 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5res12, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-04-18)(Revised Version Big Rocket Launcher Mix 1.2 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5res13, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-04-18)(Revised Version Big Shotgun Mix 1.0 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5res14, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-04-18)(Revised Version Big Shotgun Mix 1.1 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5res15, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-04-18)(Revised Version Big Shotgun Mix 1.2 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5res16, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-04-18)(Revised Version Dual Machine Gun Mix 1.0 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5res17, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-04-18)(Revised Version Dual Machine Gun Mix 1.1 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5res18, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-04-18)(Revised Version Dual Machine Gun Mix 1.2 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5res19, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-04-18)(Revised Version Enemy Chaser Mix 1.0 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5res20, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-04-18)(Revised Version Enemy Chaser Mix 1.1 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5res21, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-04-18)(Revised Version Enemy Chaser Mix 1.2 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5res22, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-04-18)(Revised Version Super Grenade Mix 1.0 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5res23, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-04-18)(Revised Version Super Grenade Mix 1.1 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5res24, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-04-18)(Revised Version Super Grenade Mix 1.2 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5res01, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-10-21)(Revised Version Big Flame Shot Mix 1.0 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5res02, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-10-21)(Revised Version Big Flame Shot Mix 1.1 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5res03, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-10-21)(Revised Version Big Flame Shot Mix 1.2 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5res04, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-10-21)(Revised Version Big Heavy Machine Gun Mix 1.0 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5res05, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-10-21)(Revised Version Big Heavy Machine Gun Mix 1.1 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5res06, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-10-21)(Revised Version Big Heavy Machine Gun Mix 1.2 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5res07, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-10-21)(Revised Version Big Laser Mix 1.0 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5res08, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-10-21)(Revised Version Big Laser Mix 1.1 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5res09, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-10-21)(Revised Version Big Laser Mix 1.2 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5res10, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-10-21)(Revised Version Big Rocket Launcher Mix 1.0 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5res11, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-10-21)(Revised Version Big Rocket Launcher Mix 1.1 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5res12, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-10-21)(Revised Version Big Rocket Launcher Mix 1.2 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5res13, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-10-21)(Revised Version Big Shotgun Mix 1.0 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5res14, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-10-21)(Revised Version Big Shotgun Mix 1.1 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5res15, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-10-21)(Revised Version Big Shotgun Mix 1.2 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5res16, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-10-21)(Revised Version Dual Machine Gun Mix 1.0 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5res17, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-10-21)(Revised Version Dual Machine Gun Mix 1.1 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5res18, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-10-21)(Revised Version Dual Machine Gun Mix 1.2 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5res19, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-10-21)(Revised Version Enemy Chaser Mix 1.0 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5res20, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-10-21)(Revised Version Enemy Chaser Mix 1.1 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5res21, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-10-21)(Revised Version Enemy Chaser Mix 1.2 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5res22, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-10-21)(Revised Version Super Grenade Mix 1.0 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5res23, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-10-21)(Revised Version Super Grenade Mix 1.1 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5res24, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/YouGuDuoLa/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Enhanced Version 2019-10-21)(Revised Version Super Grenade Mix 1.2 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
HACK( 2019, mslug5ervs01, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemies Resetting Multi-Function Version 2019-01-01)(Revised Version Big Flame Shot Mix 1.0 [2019-04-24])", MACHINE_SUPPORTS_SAVE )
HACK( 2019, mslug5ervs02, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemies Resetting Multi-Function Version 2019-01-01)(Revised Version Big Flame Shot Mix 1.1 [2019-04-24])", MACHINE_SUPPORTS_SAVE )
HACK( 2019, mslug5ervs03, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemies Resetting Multi-Function Version 2019-01-01)(Revised Version Big Flame Shot Mix 1.2 [2019-04-24])", MACHINE_SUPPORTS_SAVE )
@@ -14485,30 +14537,30 @@ HACK( 2019, mslug5ervr21, mslug5, neogeo_noslot, neogeo, neogeo_state, s1
HACK( 2019, mslug5ervr22, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemies Resetting Summon Slug Edition 2019-01-01)(Revised Version Super Grenade Mix 1.0 [2019-04-24])", MACHINE_SUPPORTS_SAVE )
HACK( 2019, mslug5ervr23, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemies Resetting Summon Slug Edition 2019-01-01)(Revised Version Super Grenade Mix 1.1 [2019-04-24])", MACHINE_SUPPORTS_SAVE )
HACK( 2019, mslug5ervr24, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemies Resetting Summon Slug Edition 2019-01-01)(Revised Version Super Grenade Mix 1.2 [2019-04-24])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5ervn01, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-05-27)(Revised Version Big Flame Shot Mix 1.0 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5ervn02, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-05-27)(Revised Version Big Flame Shot Mix 1.1 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5ervn03, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-05-27)(Revised Version Big Flame Shot Mix 1.2 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5ervn04, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-05-27)(Revised Version Big Heavy Machine Gun Mix 1.0 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5ervn05, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-05-27)(Revised Version Big Heavy Machine Gun Mix 1.1 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5ervn06, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-05-27)(Revised Version Big Heavy Machine Gun Mix 1.2 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5ervn07, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-05-27)(Revised Version Big Laser Mix 1.0 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5ervn08, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-05-27)(Revised Version Big Laser Mix 1.1 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5ervn09, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-05-27)(Revised Version Big Laser Mix 1.2 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5ervn10, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-05-27)(Revised Version Big Rocket Launcher Mix 1.0 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5ervn11, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-05-27)(Revised Version Big Rocket Launcher Mix 1.1 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5ervn12, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-05-27)(Revised Version Big Rocket Launcher Mix 1.2 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5ervn13, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-05-27)(Revised Version Big Shotgun Mix 1.0 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5ervn14, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-05-27)(Revised Version Big Shotgun Mix 1.1 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5ervn15, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-05-27)(Revised Version Big Shotgun Mix 1.2 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5ervn16, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-05-27)(Revised Version Dual Machine Gun Mix 1.0 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5ervn17, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-05-27)(Revised Version Dual Machine Gun Mix 1.1 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5ervn18, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-05-27)(Revised Version Dual Machine Gun Mix 1.2 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5ervn19, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-05-27)(Revised Version Enemy Chaser Mix 1.0 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5ervn20, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-05-27)(Revised Version Enemy Chaser Mix 1.1 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5ervn21, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-05-27)(Revised Version Enemy Chaser Mix 1.2 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5ervn22, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-05-27)(Revised Version Super Grenade Mix 1.0 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5ervn23, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-05-27)(Revised Version Super Grenade Mix 1.1 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
-HACK( 2019, mslug5ervn24, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-05-27)(Revised Version Super Grenade Mix 1.2 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5ervn01, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-10-21)(Revised Version Big Flame Shot Mix 1.0 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5ervn02, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-10-21)(Revised Version Big Flame Shot Mix 1.1 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5ervn03, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-10-21)(Revised Version Big Flame Shot Mix 1.2 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5ervn04, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-10-21)(Revised Version Big Heavy Machine Gun Mix 1.0 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5ervn05, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-10-21)(Revised Version Big Heavy Machine Gun Mix 1.1 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5ervn06, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-10-21)(Revised Version Big Heavy Machine Gun Mix 1.2 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5ervn07, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-10-21)(Revised Version Big Laser Mix 1.0 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5ervn08, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-10-21)(Revised Version Big Laser Mix 1.1 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5ervn09, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-10-21)(Revised Version Big Laser Mix 1.2 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5ervn10, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-10-21)(Revised Version Big Rocket Launcher Mix 1.0 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5ervn11, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-10-21)(Revised Version Big Rocket Launcher Mix 1.1 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5ervn12, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-10-21)(Revised Version Big Rocket Launcher Mix 1.2 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5ervn13, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-10-21)(Revised Version Big Shotgun Mix 1.0 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5ervn14, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-10-21)(Revised Version Big Shotgun Mix 1.1 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5ervn15, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-10-21)(Revised Version Big Shotgun Mix 1.2 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5ervn16, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-10-21)(Revised Version Dual Machine Gun Mix 1.0 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5ervn17, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-10-21)(Revised Version Dual Machine Gun Mix 1.1 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5ervn18, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-10-21)(Revised Version Dual Machine Gun Mix 1.2 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5ervn19, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-10-21)(Revised Version Enemy Chaser Mix 1.0 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5ervn20, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-10-21)(Revised Version Enemy Chaser Mix 1.1 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5ervn21, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-10-21)(Revised Version Enemy Chaser Mix 1.2 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5ervn22, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-10-21)(Revised Version Super Grenade Mix 1.0 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5ervn23, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-10-21)(Revised Version Super Grenade Mix 1.1 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, mslug5ervn24, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/XiaShuiDaoMeiRenYu/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Enemy Soldiers Magic Version 2019-10-21)(Revised Version Super Grenade Mix 1.2 [2019-07-12])", MACHINE_SUPPORTS_SAVE )
HACK( 2019, mslug5sses01, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/Unknown/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Summon Slug Edition 2018-09-18)(Revised Version Big Flame Shot Mix 1.0 [2019-04-26])", MACHINE_SUPPORTS_SAVE )
HACK( 2019, mslug5sses02, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/Unknown/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Summon Slug Edition 2018-09-18)(Revised Version Big Flame Shot Mix 1.1 [2019-04-26])", MACHINE_SUPPORTS_SAVE )
HACK( 2019, mslug5sses03, mslug5, neogeo_noslot, neogeo, neogeo_state, s1945p, ROT0, "Team Remix(Gaston90/Unknown/Creamymami[EGCG]/DDJ)", "Metal Slug 5 (Summon Slug Edition 2018-09-18)(Revised Version Big Flame Shot Mix 1.2 [2019-04-26])", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/neogeo.cpp b/docs/release/src/hbmame/drivers/neogeo.cpp
index 42eebd1c6ce..56f29fd42c9 100644
--- a/docs/release/src/hbmame/drivers/neogeo.cpp
+++ b/docs/release/src/hbmame/drivers/neogeo.cpp
@@ -627,12 +627,12 @@ WRITE8_MEMBER(neogeo_state::audio_cpu_enable_nmi_w)
READ16_MEMBER(neogeo_state::in0_r)
{
- return ((m_edge->in0_r(space, offset) & m_ctrl1->ctrl_r(space, offset)) << 8) | m_dsw->read();
+ return ((m_edge->in0_r() & m_ctrl1->read_ctrl()) << 8) | m_dsw->read();
}
READ16_MEMBER(neogeo_state::in1_r)
{
- return ((m_edge->in1_r(space, offset) & m_ctrl2->ctrl_r(space, offset)) << 8) | 0xff;
+ return ((m_edge->in1_r() & m_ctrl2->read_ctrl()) << 8) | 0xff;
}
CUSTOM_INPUT_MEMBER(neogeo_state::kizuna4p_start_r)
@@ -1010,8 +1010,8 @@ void neogeo_state::init_neogeo()
m_sprgen->m_fixed_layer_bank_type = 0;
// install controllers
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x300000, 0x300001, 0, 0x01ff7e, 0, read16_delegate(FUNC(neogeo_state::in0_r), this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x340000, 0x340001, 0, 0x01fffe, 0, read16_delegate(FUNC(neogeo_state::in1_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x300000, 0x300001, 0, 0x01ff7e, 0, read16_delegate(*this, FUNC(neogeo_state::in0_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x340000, 0x340001, 0, 0x01fffe, 0, read16_delegate(*this, FUNC(neogeo_state::in1_r)));
}
@@ -1379,8 +1379,8 @@ void neogeo_state::mvs(machine_config &config)
NEOGEO_CTRL_EDGE_CONNECTOR(config, m_edge, neogeo_arc_edge, "joy", false);
- NEOGEO_CONTROL_PORT(config, "ctrl1", neogeo_arc_pin15, "", false);
- NEOGEO_CONTROL_PORT(config, "ctrl2", neogeo_arc_pin15, "", false);
+ NEOGEO_CONTROL_PORT(config, "ctrl1", neogeo_arc_pin15, nullptr, false);
+ NEOGEO_CONTROL_PORT(config, "ctrl2", neogeo_arc_pin15, nullptr, false);
}
void neogeo_state::main_map_noslot(address_map &map)
@@ -1399,8 +1399,8 @@ void neogeo_state::neogeo_noslot(machine_config &config)
NEOGEO_CTRL_EDGE_CONNECTOR(config, m_edge, neogeo_arc_edge, "joy", true);
//no mahjong controller
- NEOGEO_CONTROL_PORT(config, "ctrl1", neogeo_arc_pin15, "", true);
- NEOGEO_CONTROL_PORT(config, "ctrl2", neogeo_arc_pin15, "", true);
+ NEOGEO_CONTROL_PORT(config, "ctrl1", neogeo_arc_pin15, nullptr, true);
+ NEOGEO_CONTROL_PORT(config, "ctrl2", neogeo_arc_pin15, nullptr, true);
MSLUGX_PROT(config, "mslugx_prot");
SMA_PROT(config, "sma_prot");
@@ -1423,8 +1423,8 @@ void neogeo_state::neogeo_kog(machine_config &config)
NEOGEO_CTRL_EDGE_CONNECTOR(config, m_edge, neogeo_arc_edge, "joy", true);
//no mahjong controller
- NEOGEO_CONTROL_PORT(config, "ctrl1", neogeo_arc_pin15, "", true);
- NEOGEO_CONTROL_PORT(config, "ctrl2", neogeo_arc_pin15, "", true);
+ NEOGEO_CONTROL_PORT(config, "ctrl1", neogeo_arc_pin15, nullptr, true);
+ NEOGEO_CONTROL_PORT(config, "ctrl2", neogeo_arc_pin15, nullptr, true);
NGBOOTLEG_PROT(config, "bootleg_prot");
KOG_PROT(config, "kog_prot");
@@ -1437,13 +1437,13 @@ void neogeo_state::neogeo_mj(machine_config &config)
neogeo_noslot(config);
//no joystick panel
- NEOGEO_CTRL_EDGE_CONNECTOR(config.replace(), m_edge, neogeo_arc_edge_fixed, "", true);
+ NEOGEO_CTRL_EDGE_CONNECTOR(config.replace(), m_edge, neogeo_arc_edge_fixed, nullptr, true);
//P1 mahjong controller
config.device_remove("ctrl1");
config.device_remove("ctrl2");
NEOGEO_CONTROL_PORT(config, "ctrl1", neogeo_arc_pin15, "mahjong", false);
- NEOGEO_CONTROL_PORT(config, "ctrl2", neogeo_arc_pin15, "", true);
+ NEOGEO_CONTROL_PORT(config, "ctrl2", neogeo_arc_pin15, nullptr, true);
}
void neogeo_state::neogeo_dial(machine_config &config)
diff --git a/docs/release/src/hbmame/drivers/neogeohb.cpp b/docs/release/src/hbmame/drivers/neogeohb.cpp
index 3e69fea9824..958d669c9de 100644
--- a/docs/release/src/hbmame/drivers/neogeohb.cpp
+++ b/docs/release/src/hbmame/drivers/neogeohb.cpp
@@ -239,6 +239,7 @@ NUM YEAR COMPANY TITLE
807*2013 Neobitz Knight's Chance
808*2014 NG:DEV.Team Razion
809*2015 NG:DEV.Team Kraut Buster
+810*2018 Bitmap Bureau Xeno Crisis
*********************************************************************************************************/
diff --git a/docs/release/src/hbmame/drivers/ngkofmisc.cpp b/docs/release/src/hbmame/drivers/ngkofmisc.cpp
index c53c5e79228..e3b88b5ceec 100644
--- a/docs/release/src/hbmame/drivers/ngkofmisc.cpp
+++ b/docs/release/src/hbmame/drivers/ngkofmisc.cpp
@@ -67,8 +67,8 @@ void neogeo_state::hbmame_kog(machine_config &config)
NEOGEO_CTRL_EDGE_CONNECTOR(config, m_edge, neogeo_arc_edge, "joy", true);
//no mahjong controller
- NEOGEO_CONTROL_PORT(config, "ctrl1", neogeo_arc_pin15, "", true);
- NEOGEO_CONTROL_PORT(config, "ctrl2", neogeo_arc_pin15, "", true);
+ NEOGEO_CONTROL_PORT(config, "ctrl1", neogeo_arc_pin15, nullptr, true);
+ NEOGEO_CONTROL_PORT(config, "ctrl2", neogeo_arc_pin15, nullptr, true);
}
void neogeo_state::init_kogd()
diff --git a/docs/release/src/hbmame/drivers/pgm.cpp b/docs/release/src/hbmame/drivers/pgm.cpp
index 90bcaa90582..f1cdc9641e4 100644
--- a/docs/release/src/hbmame/drivers/pgm.cpp
+++ b/docs/release/src/hbmame/drivers/pgm.cpp
@@ -15456,6 +15456,33 @@ ROM_START( kovpluss348 ) //kovplus2012dw
ROM_LOAD( "m0600_ph259.rom", 0x400000, 0x400000, CRC(7a50501b) SHA1(1af6be69f3133ed56d4a132a1910cf562da83dac) )
ROM_END
+ROM_START( kovpluss349 ) //kovplus2012mp
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600_ph349.119", 0x100000, 0x400000, CRC(2d80798e) SHA1(7b809b1a85abe8388ac3bf0dd0289ce7ce06450f) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600_ph174.rom", 0x180000, 0x800000, CRC(f7b6f432) SHA1(1c450f5eac830a41248c93b3e3f67abc217e18c3) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600_ph174.rom", 0x0000000, 0x0800000, CRC(b2a208a1) SHA1(3c4191336aa760e6077eee9983c809dfbe3eb57a) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600_ph174.rom", 0x0000000, 0x0800000, CRC(e0a70b54) SHA1(ad94e39fb418770af677083406c3db7a0279c865) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x1000000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600_ph174.rom", 0x400000, 0x454F47, CRC(132765c9) SHA1(b4f56dfeba59fea248ec4e04255033e2cb3ec8fb) )
+ROM_END
+
ROM_START( kovplusas01 )
ROM_REGION( 0x600000, "maincpu", 0 )
PGM_68K_BIOS
@@ -32168,6 +32195,7 @@ HACK( 2018, kovpluss345, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1
HACK( 2018, kovpluss346, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Gotvg", "Knights of Valour Plus (Ordinary Soldiers 2 2018-12-25)", MACHINE_SUPPORTS_SAVE )
HACK( 2018, kovpluss347, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Gotvg", "Knights of Valour Plus (Dream of Tu Mi 2018-03-05)", MACHINE_SUPPORTS_SAVE )
HACK( 2019, kovpluss348, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Gotvg", "Knights of Valour Plus (2012 Musou Edition 2019-04-15)", MACHINE_SUPPORTS_SAVE )
+HACK( 2019, kovpluss349, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "hack", "Knights of Valour Plus (Nightmare Kings Edition 2019-10-21)", MACHINE_SUPPORTS_SAVE )
HACK( 1999, kovplusas01, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Creamymami", "Knights of Valour Plus (Enhanced Power)", MACHINE_SUPPORTS_SAVE )
// Knights of Valour Super Heroes
HACK( 1999, kovshs01, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "hack", "Knights of Valour Super Heroes (FY 2016 4th Edition)", MACHINE_SUPPORTS_SAVE ) // This roms is already verified
diff --git a/docs/release/src/hbmame/drivers/segaorun.cpp b/docs/release/src/hbmame/drivers/segaorun.cpp
index a26437c379a..ff68b892520 100644
--- a/docs/release/src/hbmame/drivers/segaorun.cpp
+++ b/docs/release/src/hbmame/drivers/segaorun.cpp
@@ -263,8 +263,8 @@ void outrunm_state::sound_portmap_banked(address_map &map) {
map.global_mask(0xff);
map(0x00,0x01).mirror(0x3e).rw("ymsnd",FUNC(ym2151_device::read),FUNC(ym2151_device::write));
map(0x40,0x7f).r("mapper",FUNC(sega_315_5195_mapper_device::pread));
- map(0x80,0xbf).lw8("bank0", [this](u8 data) { m_soundbank->set_bank(0); } );
- map(0xc0,0xff).lw8("bank1", [this](u8 data) { m_soundbank->set_bank(1); } );
+ map(0x80,0xbf).lw8(NAME([this](u8 data) { m_soundbank->set_bank(0); } ));
+ map(0xc0,0xff).lw8(NAME([this](u8 data) { m_soundbank->set_bank(1); } ));
}
void outrunm_state::soundbank_map(address_map &map) {
@@ -289,8 +289,8 @@ void outrunm_state::outrunm(machine_config &config)
void outrunm_state::init_init()
{
init_generic();
- m_custom_io_r = read16_delegate(FUNC(outrunm_state::outrun_custom_io_r), this);
- m_custom_io_w = write16_delegate(FUNC(outrunm_state::outrun_custom_io_w), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(outrunm_state::outrun_custom_io_r));
+ m_custom_io_w = write16_delegate(*this, FUNC(outrunm_state::outrun_custom_io_w));
}
ROM_START( outrunm )
diff --git a/docs/release/src/hbmame/drivers/tempest.cpp b/docs/release/src/hbmame/drivers/tempest.cpp
index 90fa2322444..1c00ba22c62 100644
--- a/docs/release/src/hbmame/drivers/tempest.cpp
+++ b/docs/release/src/hbmame/drivers/tempest.cpp
@@ -673,7 +673,7 @@ void tempmg_state::tempmg_map(address_map &map) {
map(0x60d0, 0x60df).rw("pokey2",FUNC(pokey_device::read),FUNC(pokey_device::write));
map(0x60e0, 0x60e0).w(FUNC(tempmg_state::tempest_led_w));
map(0x9000, 0xdfff).bankr("bank1");
- map(0xe000, 0xe000).lw8("rombank", [this] (u8 data) { rombank_w(data); });
+ map(0xe000, 0xe000).lw8(NAME([this] (u8 data) { rombank_w(data); }));
map(0xf800, 0xffff).bankr("bank2");
}
diff --git a/docs/release/src/hbmame/drivers/timelimit.cpp b/docs/release/src/hbmame/drivers/timelimit.cpp
index 595906d60fb..91d21b7fe71 100644
--- a/docs/release/src/hbmame/drivers/timelimit.cpp
+++ b/docs/release/src/hbmame/drivers/timelimit.cpp
@@ -45,7 +45,7 @@ void timelimt_hbmame::timelimit(machine_config &config)
m_audiocpu->set_addrmap(AS_IO, &timelimt_hbmame::sound_io_map);
m_audiocpu->set_vblank_int("screen", FUNC(timelimt_hbmame::irq0_line_hold)); /* ? */
- config.m_minimum_quantum = attotime::from_hz(3000);
+ config.set_maximum_quantum(attotime::from_hz(3000));
ls259_device &mainlatch(LS259(config, "mainlatch")); // IC15
mainlatch.q_out_cb<0>().set(FUNC(timelimt_hbmame::nmi_enable_w));
diff --git a/docs/release/src/hbmame/hbmame.lst b/docs/release/src/hbmame/hbmame.lst
index a0ef429867c..90725d3e6ce 100644
--- a/docs/release/src/hbmame/hbmame.lst
+++ b/docs/release/src/hbmame/hbmame.lst
@@ -534,6 +534,7 @@ tk2h143
tk2h144
tk2h145
tk2h146
+tk2h147
wofb
wofch // tk2p1
wofes
@@ -610,6 +611,10 @@ captcomms66
captcomms67
captcomms68
captcomms69
+captcomms70
+captcomms71
+captcomms72
+captcomms73
dinos01
dinos02
dinos03
@@ -899,6 +904,10 @@ sf2ces25
sf2ces26
sf2ces27
sf2ces28
+sf2ces29
+sf2ces30
+sf2ces31
+sf2ces32
sf2js01
sf2js02
sf2s01
@@ -1152,6 +1161,7 @@ xmvsfu1d
1944s01
avspus01
avspus02
+batcirds01
csclubs01
cybotsjs01
ddsomjs01
@@ -3502,6 +3512,7 @@ kof2k2s81
kof2k2s82
kof2k2s83
kof2k2s84
+kof2k2s85
@source:kof2003.cpp
kof2003d
@@ -4818,6 +4829,8 @@ mslug5dh54
mslug5dh55
mslug5dh56
mslug5dh57
+mslug5dh58
+mslug5dh59
ms5plusrm01
ms5plusrm02
ms5plusrm03
@@ -7684,6 +7697,7 @@ kovpluss345
kovpluss346
kovpluss347
kovpluss348
+kovpluss349
kovplusas01
kovshs01
kovshs02
diff --git a/docs/release/src/hbmame/machine/ng_memcard.h b/docs/release/src/hbmame/machine/ng_memcard.h
index 72a62043b8c..73043df11ad 100644
--- a/docs/release/src/hbmame/machine/ng_memcard.h
+++ b/docs/release/src/hbmame/machine/ng_memcard.h
@@ -32,14 +32,14 @@ public:
// construction/destruction
ng_memcard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
- virtual iodevice_t image_type() const override { return IO_MEMCARD; }
-
- virtual bool is_readable() const override { return true; }
- virtual bool is_writeable() const override { return true; }
- virtual bool is_creatable() const override { return true; }
- virtual bool must_be_loaded() const override { return false; }
- virtual bool is_reset_on_load() const override { return false; }
- virtual const char *file_extensions() const override { return "neo"; }
+ virtual iodevice_t image_type() const noexcept override { return IO_MEMCARD; }
+
+ virtual bool is_readable() const noexcept override { return true; }
+ virtual bool is_writeable() const noexcept override { return true; }
+ virtual bool is_creatable() const noexcept override { return true; }
+ virtual bool must_be_loaded() const noexcept override { return false; }
+ virtual bool is_reset_on_load() const noexcept override { return false; }
+ virtual const char *file_extensions() const noexcept override { return "neo"; }
virtual image_init_result call_load() override;
virtual void call_unload() override;
diff --git a/docs/release/src/hbmame/video/cps1.cpp b/docs/release/src/hbmame/video/cps1.cpp
index b0e409bcbcd..67fa262288a 100644
--- a/docs/release/src/hbmame/video/cps1.cpp
+++ b/docs/release/src/hbmame/video/cps1.cpp
@@ -1972,9 +1972,9 @@ VIDEO_START_MEMBER(cps_state,cps)
m_stars_rom_size = 0x2000; /* first 0x4000 of gfx ROM are used, but 0x0000-0x1fff is == 0x2000-0x3fff */
/* create tilemaps */
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cps_state::get_tile0_info),this), tilemap_mapper_delegate(FUNC(cps_state::tilemap0_scan),this), 8, 8, 64, 64);
- m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cps_state::get_tile1_info),this), tilemap_mapper_delegate(FUNC(cps_state::tilemap1_scan),this), 16, 16, 64, 64);
- m_bg_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cps_state::get_tile2_info),this), tilemap_mapper_delegate(FUNC(cps_state::tilemap2_scan),this), 32, 32, 64, 64);
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cps_state::get_tile0_info)), tilemap_mapper_delegate(*this, FUNC(cps_state::tilemap0_scan)), 8, 8, 64, 64);
+ m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cps_state::get_tile1_info)), tilemap_mapper_delegate(*this, FUNC(cps_state::tilemap1_scan)), 16, 16, 64, 64);
+ m_bg_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cps_state::get_tile2_info)), tilemap_mapper_delegate(*this, FUNC(cps_state::tilemap2_scan)), 32, 32, 64, 64);
/* create empty tiles */
memset(m_empty_tile, 0x0f, sizeof(m_empty_tile));
diff --git a/docs/release/src/hbmame/video/cps2.cpp b/docs/release/src/hbmame/video/cps2.cpp
index b3797e0b937..baff4f5e9c9 100644
--- a/docs/release/src/hbmame/video/cps2.cpp
+++ b/docs/release/src/hbmame/video/cps2.cpp
@@ -588,9 +588,9 @@ VIDEO_START_MEMBER(cps2_state,cps)
m_stars_rom_size = 0x2000; /* first 0x4000 of gfx ROM are used, but 0x0000-0x1fff is == 0x2000-0x3fff */
/* create tilemaps */
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cps2_state::get_tile0_info),this), tilemap_mapper_delegate(FUNC(cps2_state::tilemap0_scan),this), 8, 8, 64, 64);
- m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cps2_state::get_tile1_info),this), tilemap_mapper_delegate(FUNC(cps2_state::tilemap1_scan),this), 16, 16, 64, 64);
- m_bg_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cps2_state::get_tile2_info),this), tilemap_mapper_delegate(FUNC(cps2_state::tilemap2_scan),this), 32, 32, 64, 64);
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cps2_state::get_tile0_info)), tilemap_mapper_delegate(*this, FUNC(cps2_state::tilemap0_scan)), 8, 8, 64, 64);
+ m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cps2_state::get_tile1_info)), tilemap_mapper_delegate(*this, FUNC(cps2_state::tilemap1_scan)), 16, 16, 64, 64);
+ m_bg_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cps2_state::get_tile2_info)), tilemap_mapper_delegate(*this, FUNC(cps2_state::tilemap2_scan)), 32, 32, 64, 64);
/* create empty tiles */
memset(m_empty_tile, 0x0f, sizeof(m_empty_tile));
diff --git a/docs/release/src/hbmame/video/pacman.cpp b/docs/release/src/hbmame/video/pacman.cpp
index 90acfa1c11b..b8706cdb33b 100644
--- a/docs/release/src/hbmame/video/pacman.cpp
+++ b/docs/release/src/hbmame/video/pacman.cpp
@@ -15,7 +15,7 @@ VIDEO_START_MEMBER( pacman_state, pacmanx )
m_inv_spr = 0;
m_xoffsethack = 2;
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pacman_state::pacman_get_tile_info),this), tilemap_mapper_delegate(FUNC(pacman_state::pacman_scan_rows),this), 16, 16, 36, 28 );
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pacman_state::pacman_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(pacman_state::pacman_scan_rows)), 16, 16, 36, 28 );
m_bg_tilemap->set_scrolldx(0, 384*2 - 288*2 );
m_bg_tilemap->set_scrolldy(0, 264*2 - 224*2 );
@@ -154,7 +154,7 @@ VIDEO_START_MEMBER( pacman_state, multipac )
m_inv_spr = 0;
m_xoffsethack = 1;
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pacman_state::multipac_get_tile_info),this), tilemap_mapper_delegate(FUNC(pacman_state::pacman_scan_rows),this), 8, 8, 36, 28 );
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pacman_state::multipac_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(pacman_state::pacman_scan_rows)), 8, 8, 36, 28 );
m_bg_tilemap->set_scrolldx(0, 384 - 288 );
m_bg_tilemap->set_scrolldy(0, 264 - 224 );
diff --git a/docs/release/src/mame/drivers/konamigx.cpp b/docs/release/src/mame/drivers/konamigx.cpp
index 81c186760cc..4c3ea2d8d7f 100644
--- a/docs/release/src/mame/drivers/konamigx.cpp
+++ b/docs/release/src/mame/drivers/konamigx.cpp
@@ -1620,7 +1620,7 @@ void konamigx_state::konamigx(machine_config &config)
m_k053252->int2_ack().set(FUNC(konamigx_state::hblank_irq_ack_w));
m_k053252->set_screen("screen");
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
MCFG_MACHINE_START_OVERRIDE(konamigx_state,konamigx)
MCFG_MACHINE_RESET_OVERRIDE(konamigx_state,konamigx)
@@ -1645,7 +1645,7 @@ void konamigx_state::konamigx(machine_config &config)
m_palette->enable_hilights();
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(konamigx_state::type2_tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(konamigx_state::type2_tile_callback));
m_k056832->set_config(K056832_BPP_5, 0, 0);
m_k056832->set_palette(m_palette);
@@ -1656,7 +1656,7 @@ void konamigx_state::konamigx(machine_config &config)
m_k054338->set_alpha_invert(1);
K055673(config, m_k055673, 0);
- m_k055673->set_sprite_callback(FUNC(konamigx_state::type2_sprite_callback), this);
+ m_k055673->set_sprite_callback(FUNC(konamigx_state::type2_sprite_callback));
m_k055673->set_config(K055673_LAYOUT_GX, -26, -23);
m_k055673->set_screen(m_screen);
m_k055673->set_palette(m_palette);
@@ -1708,7 +1708,7 @@ void konamigx_state::sexyparo(machine_config &config)
{
konamigx(config);
- m_k056832->set_tile_callback(FUNC(konamigx_state::alpha_tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(konamigx_state::alpha_tile_callback));
m_k055673->set_config(K055673_LAYOUT_GX, -42, -23);
}
@@ -1729,7 +1729,7 @@ void konamigx_state::dragoonj(machine_config &config)
m_k056832->set_config(K056832_BPP_5, 1, 0);
- m_k055673->set_sprite_callback(FUNC(konamigx_state::dragoonj_sprite_callback), this);
+ m_k055673->set_sprite_callback(FUNC(konamigx_state::dragoonj_sprite_callback));
m_k055673->set_config(K055673_LAYOUT_RNG, -53, -23);
}
@@ -1742,7 +1742,7 @@ void konamigx_state::le2(machine_config &config)
m_k056832->set_config(K056832_BPP_8, 1, 0);
- m_k055673->set_sprite_callback(FUNC(konamigx_state::le2_sprite_callback), this);
+ m_k055673->set_sprite_callback(FUNC(konamigx_state::le2_sprite_callback));
m_k055673->set_config(K055673_LAYOUT_LE2, -46, -23);
}
@@ -1761,7 +1761,7 @@ void konamigx_state::salmndr2(machine_config &config)
konamigx(config);
m_k056832->set_config(K056832_BPP_6, 1, 0);
- m_k055673->set_sprite_callback(FUNC(konamigx_state::salmndr2_sprite_callback), this);
+ m_k055673->set_sprite_callback(FUNC(konamigx_state::salmndr2_sprite_callback));
m_k055673->set_config(K055673_LAYOUT_GX6, -48, -23);
}
@@ -1914,7 +1914,7 @@ void konamigx_state::winspike(machine_config &config)
m_k053252->set_offsets(24+15, 16);
- m_k056832->set_tile_callback(FUNC(konamigx_state::alpha_tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(konamigx_state::alpha_tile_callback));
m_k056832->set_config(K056832_BPP_8, 0, 2);
m_k055673->set_config(K055673_LAYOUT_LE2, -53, -23);
@@ -3856,8 +3856,8 @@ void konamigx_state::init_konamigx()
switch (gameDefs[i].special)
{
case 1: // LE2 guns
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xd44000, 0xd44003, read32_delegate(FUNC(konamigx_state::le2_gun_H_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xd44004, 0xd44007, read32_delegate(FUNC(konamigx_state::le2_gun_V_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xd44000, 0xd44003, read32_delegate(*this, FUNC(konamigx_state::le2_gun_H_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xd44004, 0xd44007, read32_delegate(*this, FUNC(konamigx_state::le2_gun_V_r)));
break;
case 2: // tkmmpzdm hack
{
@@ -3892,7 +3892,7 @@ void konamigx_state::init_konamigx()
break;
case 7: // install type 4 Xilinx protection for non-type 3/4 games
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xcc0000, 0xcc0007, write32_delegate(FUNC(konamigx_state::type4_prot_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xcc0000, 0xcc0007, write32_delegate(*this, FUNC(konamigx_state::type4_prot_w)));
break;
case 8: // tbyahhoo
@@ -3909,7 +3909,7 @@ void konamigx_state::init_konamigx()
}
if (readback == BPP66)
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xd00000, 0xd01fff, read32_delegate(FUNC(konamigx_state::k_6bpp_rom_long_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xd00000, 0xd01fff, read32_delegate(*this, FUNC(konamigx_state::k_6bpp_rom_long_r)));
#undef BPP5
diff --git a/docs/release/src/mame/drivers/model2.cpp b/docs/release/src/mame/drivers/model2.cpp
index 1752cacad69..9cecd30cdab 100644
--- a/docs/release/src/mame/drivers/model2.cpp
+++ b/docs/release/src/mame/drivers/model2.cpp
@@ -2812,7 +2812,7 @@ void model2b_state::model2b(machine_config &config)
//m_dsp2->set_boot_mode(adsp21062_device::BOOT_MODE_HOST);
//m_dsp2->set_addrmap(AS_DATA, &model2b_state::geo_sharc_map);
- config.m_minimum_quantum = attotime::from_hz(18000);
+ config.set_maximum_quantum(attotime::from_hz(18000));
GENERIC_FIFO_U32(config, m_copro_fifo_in, 0);
GENERIC_FIFO_U32(config, m_copro_fifo_out, 0);
@@ -3133,7 +3133,7 @@ ROM_START( zeroguna ) /* Zero Gunner (Export), Model 2A */
ROM_LOAD32_WORD("mpr-20294.9", 0x800000, 0x400000, CRC(a0bd1474) SHA1(c0c032adac69bd545e3aab481878b08f3c3edab8) )
ROM_LOAD32_WORD("mpr-20295.10", 0x800002, 0x400000, CRC(c548cced) SHA1(d34f2fc9b4481c75a6824aa4bdd3f1884188d35b) )
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc) (COPRO socket)
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc) (COPRO socket)
ROM_REGION( 0x800000, "polygons", 0 ) // Models
ROM_LOAD32_WORD("mpr-20298.17", 0x000000, 0x400000, CRC(8ab782fc) SHA1(595f6fc2e9c58ce9763d51798ceead8d470f0a33) )
@@ -3168,7 +3168,7 @@ ROM_START( zerogunaj ) /* Zero Gunner (Japan), Model 2A - Sega game ID# 833-1134
ROM_LOAD32_WORD("mpr-20294.9", 0x800000, 0x400000, CRC(a0bd1474) SHA1(c0c032adac69bd545e3aab481878b08f3c3edab8) )
ROM_LOAD32_WORD("mpr-20295.10", 0x800002, 0x400000, CRC(c548cced) SHA1(d34f2fc9b4481c75a6824aa4bdd3f1884188d35b) )
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
ROM_REGION( 0x800000, "polygons", 0 ) // Models
ROM_LOAD32_WORD("mpr-20298.17", 0x000000, 0x400000, CRC(8ab782fc) SHA1(595f6fc2e9c58ce9763d51798ceead8d470f0a33) )
@@ -3211,7 +3211,7 @@ ROM_START( zerogun ) /* Zero Gunner (Export), Model 2B */
ROM_LOAD32_WORD("mpr-20301.27", 0x000000, 0x200000, CRC(52010fb2) SHA1(8dce67c6f9e48d749c64b11d4569df413dc40e07) )
ROM_LOAD32_WORD("mpr-20300.25", 0x000002, 0x200000, CRC(6f042792) SHA1(75db68e57ec3fbc7af377342eef81f26fae4e1c4) )
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
ROM_REGION( 0x080000, "audiocpu", 0 ) // Sound program
ROM_LOAD16_WORD_SWAP("epr-20302.31", 0x000000, 0x080000, CRC(44ff50d2) SHA1(6ffec81042fd5708e8a5df47b63f9809f93bf0f8) )
@@ -3243,7 +3243,7 @@ ROM_START( zerogunj ) /* Zero Gunner (Japan), Model 2B */
ROM_LOAD32_WORD("mpr-20301.27", 0x000000, 0x200000, CRC(52010fb2) SHA1(8dce67c6f9e48d749c64b11d4569df413dc40e07) )
ROM_LOAD32_WORD("mpr-20300.25", 0x000002, 0x200000, CRC(6f042792) SHA1(75db68e57ec3fbc7af377342eef81f26fae4e1c4) )
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
ROM_REGION( 0x080000, "audiocpu", 0 ) // Sound program
ROM_LOAD16_WORD_SWAP("epr-20302.31", 0x000000, 0x080000, CRC(44ff50d2) SHA1(6ffec81042fd5708e8a5df47b63f9809f93bf0f8) )
@@ -3267,7 +3267,7 @@ ROM_START( gunblade ) /* Gunblade NY Revision A, Model 2B, Sega game ID# 833-125
ROM_LOAD32_WORD("mpr-18976.9", 0x800000, 0x400000, CRC(c95c15eb) SHA1(892063e91b2ed20e0600d4b188da1e9f45a19692) )
ROM_LOAD32_WORD("mpr-18977.10", 0x800002, 0x400000, CRC(db8f5b6f) SHA1(c11d2c9e1e215aa7b2ebb777639c8cd651901f52) )
- ROM_REGION( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc)
ROM_LOAD32_WORD("mpr-18986.29", 0x000000, 0x400000, CRC(04820f7b) SHA1(5eb6682399b358d77658d82e612b02b724e3f3e1) )
ROM_LOAD32_WORD("mpr-18987.30", 0x000002, 0x400000, CRC(2419367f) SHA1(0a04a1049d2da486dc9dbb97b383bd24259b78c8) )
@@ -3306,7 +3306,7 @@ ROM_START( vf2 ) /* Virtua Fighter 2 Version 2.1, Model 2A */
ROM_LOAD32_WORD( "mpr-17564.4", 0xc00000, 0x200000, CRC(d8062489) SHA1(57666b6937f79bb65c43ed02b04a454882d01e61) )
ROM_LOAD32_WORD( "mpr-17565.5", 0xc00002, 0x200000, CRC(0517c6e9) SHA1(d9ba93998286713758385033119416714674c8d8) )
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
ROM_REGION( 0x2000000, "polygons", 0 ) // Models
ROM_LOAD32_WORD( "mpr-17554.16", 0x000000, 0x200000, CRC(27896d82) SHA1(c0624e58de2e427465daaa10dbb02ea2a1fd0f1b) )
@@ -3352,7 +3352,7 @@ ROM_START( vf2b ) /* Virtua Fighter 2 Revision B, Model 2A */
ROM_LOAD32_WORD( "mpr-17564.4", 0xc00000, 0x200000, CRC(d8062489) SHA1(57666b6937f79bb65c43ed02b04a454882d01e61) )
ROM_LOAD32_WORD( "mpr-17565.5", 0xc00002, 0x200000, CRC(0517c6e9) SHA1(d9ba93998286713758385033119416714674c8d8) )
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
ROM_REGION( 0x2000000, "polygons", 0 ) // Models
ROM_LOAD32_WORD( "mpr-17554.16", 0x000000, 0x200000, CRC(27896d82) SHA1(c0624e58de2e427465daaa10dbb02ea2a1fd0f1b) )
@@ -3398,7 +3398,7 @@ ROM_START( vf2a ) /* Virtua Fighter 2 Revision A, Model 2A */
ROM_LOAD32_WORD( "mpr-17564.4", 0xc00000, 0x200000, CRC(d8062489) SHA1(57666b6937f79bb65c43ed02b04a454882d01e61) )
ROM_LOAD32_WORD( "mpr-17565.5", 0xc00002, 0x200000, CRC(0517c6e9) SHA1(d9ba93998286713758385033119416714674c8d8) )
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
ROM_REGION( 0x2000000, "polygons", 0 ) // Models
ROM_LOAD32_WORD( "mpr-17554.16", 0x000000, 0x200000, CRC(27896d82) SHA1(c0624e58de2e427465daaa10dbb02ea2a1fd0f1b) )
@@ -3444,7 +3444,7 @@ ROM_START( vf2o ) /* Virtua Fighter 2, Model 2A */
ROM_LOAD32_WORD( "mpr-17564.4", 0xc00000, 0x200000, CRC(d8062489) SHA1(57666b6937f79bb65c43ed02b04a454882d01e61) )
ROM_LOAD32_WORD( "mpr-17565.5", 0xc00002, 0x200000, CRC(0517c6e9) SHA1(d9ba93998286713758385033119416714674c8d8) )
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
ROM_REGION( 0x2000000, "polygons", 0 ) // Models
ROM_LOAD32_WORD( "mpr-17554.16", 0x000000, 0x200000, CRC(27896d82) SHA1(c0624e58de2e427465daaa10dbb02ea2a1fd0f1b) )
@@ -3487,7 +3487,7 @@ ROM_START( srallyc )
ROM_LOAD32_WORD( "mpr-17884.6", 0x800000, 0x200000, CRC(4cfc95e1) SHA1(81d927b8c4f9d0c4c5e29d676b30f30f83751fdc) )
ROM_LOAD32_WORD( "mpr-17885.7", 0x800002, 0x200000, CRC(a08d2467) SHA1(9449ac8f8f9ce8d8e536b05a91e46841fed7f2d0) )
- ROM_REGION( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
ROM_LOAD32_WORD( "mpr-17754.28", 0x000000, 0x200000, CRC(81a84f67) SHA1(c0a9b690523a529e4015e9af10dc3fb2a1726f08) )
ROM_LOAD32_WORD( "mpr-17755.29", 0x000002, 0x200000, CRC(2a6e7da4) SHA1(e60803ae951489fe47d66731d15c32249ca547b4) )
@@ -3533,7 +3533,7 @@ ROM_START( srallycb ) /* Sega Rally Championship Revision B, Model 2A, Sega game
ROM_LOAD32_WORD( "mpr-17884.6", 0x800000, 0x200000, CRC(4cfc95e1) SHA1(81d927b8c4f9d0c4c5e29d676b30f30f83751fdc) )
ROM_LOAD32_WORD( "mpr-17885.7", 0x800002, 0x200000, CRC(a08d2467) SHA1(9449ac8f8f9ce8d8e536b05a91e46841fed7f2d0) )
- ROM_REGION( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
ROM_LOAD32_WORD( "mpr-17754.28", 0x000000, 0x200000, CRC(81a84f67) SHA1(c0a9b690523a529e4015e9af10dc3fb2a1726f08) )
ROM_LOAD32_WORD( "mpr-17755.29", 0x000002, 0x200000, CRC(2a6e7da4) SHA1(e60803ae951489fe47d66731d15c32249ca547b4) )
@@ -3579,7 +3579,7 @@ ROM_START( srallycc ) /* Sega Rally Championship Revision A, Model 2A, Sega game
ROM_LOAD32_WORD( "mpr-17884.6", 0x800000, 0x200000, CRC(4cfc95e1) SHA1(81d927b8c4f9d0c4c5e29d676b30f30f83751fdc) )
ROM_LOAD32_WORD( "mpr-17885.7", 0x800002, 0x200000, CRC(a08d2467) SHA1(9449ac8f8f9ce8d8e536b05a91e46841fed7f2d0) )
- ROM_REGION( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
ROM_LOAD32_WORD( "mpr-17754.28", 0x000000, 0x200000, CRC(81a84f67) SHA1(c0a9b690523a529e4015e9af10dc3fb2a1726f08) )
ROM_LOAD32_WORD( "mpr-17755.29", 0x000002, 0x200000, CRC(2a6e7da4) SHA1(e60803ae951489fe47d66731d15c32249ca547b4) )
@@ -3625,7 +3625,7 @@ ROM_START( srallycdx ) /* Sega Rally Championship DX Revision A, Model 2A - Sing
ROM_LOAD32_WORD( "mpr-17764a.6", 0x800000, 0x200000, CRC(dcb91e31) SHA1(2725268e97b9f4c14d56c040af38bc82f5020e3e) ) // IC 6 and 7 likely EPROMs
ROM_LOAD32_WORD( "mpr-17765a.7", 0x800002, 0x200000, CRC(b657dc48) SHA1(ae0f1bc6e2479fa51ca36f8be3a1785981c4dfe9) )
- ROM_REGION( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
ROM_LOAD32_WORD( "mpr-17754.28", 0x000000, 0x200000, CRC(81a84f67) SHA1(c0a9b690523a529e4015e9af10dc3fb2a1726f08) )
ROM_LOAD32_WORD( "mpr-17755.29", 0x000002, 0x200000, CRC(2a6e7da4) SHA1(e60803ae951489fe47d66731d15c32249ca547b4) )
@@ -3672,7 +3672,7 @@ ROM_START( srallycdxa ) // Sega Rally Championship DX, Model 2A? - Single player
ROM_LOAD32_WORD( "epr-17764.6", 0x800000, 0x100000, CRC(68254fcf) SHA1(d90d962b5f81d6598fc9d94c44d9cee71767fc26) ) // NEC D27C8000D EPROM
ROM_LOAD32_WORD( "epr-17765.7", 0x800002, 0x100000, CRC(81112ea5) SHA1(a0251b4f5f18ae2e2d0576087a687dd7c2e49c34) ) // NEC D27C8000D EPROM
- ROM_REGION( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
ROM_LOAD32_WORD( "mpr-17754.28", 0x000000, 0x200000, CRC(81a84f67) SHA1(c0a9b690523a529e4015e9af10dc3fb2a1726f08) ) // not present in this rev memory test, why ?
ROM_LOAD32_WORD( "mpr-17755.29", 0x000002, 0x200000, CRC(2a6e7da4) SHA1(e60803ae951489fe47d66731d15c32249ca547b4) ) //
@@ -3767,7 +3767,7 @@ ROM_START( manxtt ) /* Manx TT Superbike Twin Revision D, Model 2A - Can be set
ROM_LOAD32_WORD( "mpr-18755.18", 0x800000, 0x200000, CRC(bf094d9e) SHA1(2cd7130b226a28098191a6caf6fd761bb0bfac7b) )
ROM_LOAD32_WORD( "mpr-18758.22", 0x800002, 0x200000, CRC(1b5473d0) SHA1(658e33503f6990f4d9a954c63efad5f53d15f3a4) )
- ROM_REGION( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
ROM_LOAD32_WORD( "mpr-18761.28", 0x000000, 0x200000, CRC(4e39ec05) SHA1(50696cd320f1a6492e0c193713acbce085d959cd) )
ROM_LOAD32_WORD( "mpr-18762.29", 0x000002, 0x200000, CRC(4ab165d8) SHA1(7ff42a4c7236fec76f94f2d0c5537e503bcc98e5) )
@@ -3827,7 +3827,7 @@ ROM_START( manxttc ) /* Manx TT Superbike Twin Revision C, Model 2A */
ROM_LOAD32_WORD( "mpr-18755.18", 0x800000, 0x200000, CRC(bf094d9e) SHA1(2cd7130b226a28098191a6caf6fd761bb0bfac7b) )
ROM_LOAD32_WORD( "mpr-18758.22", 0x800002, 0x200000, CRC(1b5473d0) SHA1(658e33503f6990f4d9a954c63efad5f53d15f3a4) )
- ROM_REGION( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
ROM_LOAD32_WORD( "mpr-18761.28", 0x000000, 0x200000, CRC(4e39ec05) SHA1(50696cd320f1a6492e0c193713acbce085d959cd) )
ROM_LOAD32_WORD( "mpr-18762.29", 0x000002, 0x200000, CRC(4ab165d8) SHA1(7ff42a4c7236fec76f94f2d0c5537e503bcc98e5) )
@@ -3884,7 +3884,7 @@ ROM_START( motoraid ) /* Motor Raid, Model 2A, Sega game ID# 833-13232 MOTOR RAI
ROM_LOAD32_WORD( "mpr-20025.18", 0x1000000, 0x400000, CRC(d4ecd0be) SHA1(9df0d1db32b818dad28f9eeab3bc19c56d27ec6d) )
ROM_LOAD32_WORD( "mpr-20028.22", 0x1000002, 0x400000, CRC(3147e0e1) SHA1(9aa0e13c8dc5073a603279a538cc7662531dfd19) )
- ROM_REGION( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
ROM_LOAD32_WORD( "epr-20011.28", 0x000000, 0x100000, CRC(794c026c) SHA1(85abd667491fd019ee18ba256fd580356f4e1fe9) )
ROM_LOAD32_WORD( "epr-20012.29", 0x000002, 0x100000, CRC(f53db4e3) SHA1(4474610eed52248e5e36be438eff5d39f076b134) )
@@ -3935,7 +3935,7 @@ ROM_START( motoraiddx ) /* Motor Raid DX, Model 2A, Sega ROM board ID# 834-13231
ROM_LOAD32_WORD( "mpr-20025.18", 0x1000000, 0x400000, CRC(d4ecd0be) SHA1(9df0d1db32b818dad28f9eeab3bc19c56d27ec6d) )
ROM_LOAD32_WORD( "mpr-20028.22", 0x1000002, 0x400000, CRC(3147e0e1) SHA1(9aa0e13c8dc5073a603279a538cc7662531dfd19) )
- ROM_REGION( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
ROM_LOAD32_WORD( "epr-20011.28", 0x000000, 0x100000, CRC(794c026c) SHA1(85abd667491fd019ee18ba256fd580356f4e1fe9) )
ROM_LOAD32_WORD( "epr-20012.29", 0x000002, 0x100000, CRC(f53db4e3) SHA1(4474610eed52248e5e36be438eff5d39f076b134) )
@@ -3987,7 +3987,7 @@ ROM_START( skytargt ) /* Sky Target, Model 2A, Sega game ID# 833-12178, Sega ROM
ROM_COPY( "main_data", 0x1000000, 0x1e00000, 0x100000 )
ROM_COPY( "main_data", 0x1000000, 0x1f00000, 0x100000 )
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
ROM_LOAD32_WORD( "mpr-18420.28", 0x000000, 0x200000, CRC(92b87817) SHA1(b6949b745d0bedeecd6d0240f8911cb345c16d8d) )
ROM_LOAD32_WORD( "mpr-18419.29", 0x000002, 0x200000, CRC(74542d87) SHA1(37230e96dd526fb47fcbde5778e5466d8955a969) )
@@ -4034,7 +4034,7 @@ ROM_START( vcop2 ) /* Virtua Cop 2, Model 2A, Sega Game ID# 833-12266, ROM board
ROM_COPY( "main_data", 0xc00000, 0xe00000, 0x100000 )
ROM_COPY( "main_data", 0xc00000, 0xf00000, 0x100000 )
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
ROM_REGION( 0x2000000, "polygons", 0 ) // Models
ROM_LOAD32_WORD( "mpr-18513.16", 0x000000, 0x200000, CRC(777a3633) SHA1(edc2798c4d88975ce67b54fc0db008e7d24db6ef) )
@@ -4102,7 +4102,7 @@ ROM_START( dynamcop ) /* Dynamite Cop (Export), Model 2A, Sega Game ID# 833-1134
ROM_LOAD32_WORD("mpr-20791.4", 0x1800000, 0x400000, CRC(4883d0df) SHA1(b98af63e81f6c1b2766d7e96acbd1821bba000d4) )
ROM_LOAD32_WORD("mpr-20792.5", 0x1800002, 0x400000, CRC(47becfa2) SHA1(a333885872a64b322f3cb464a70352d73654b1b3) )
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
ROM_REGION( 0x2000000, "polygons", 0 ) // Models
ROM_LOAD32_WORD("mpr-20799.16", 0x0000000, 0x400000, CRC(424571bf) SHA1(18a4e8d0e968fff3b645b59a0023b0ef38d51924) )
@@ -4153,7 +4153,7 @@ ROM_START( dyndeka2 ) /* Dynamite Deka 2 (Japan), Model 2A */
ROM_LOAD32_WORD("mpr-20791.4", 0x1800000, 0x400000, CRC(4883d0df) SHA1(b98af63e81f6c1b2766d7e96acbd1821bba000d4) )
ROM_LOAD32_WORD("mpr-20792.5", 0x1800002, 0x400000, CRC(47becfa2) SHA1(a333885872a64b322f3cb464a70352d73654b1b3) )
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
ROM_REGION( 0x2000000, "polygons", 0 ) // Models
ROM_LOAD32_WORD("mpr-20799.16", 0x0000000, 0x400000, CRC(424571bf) SHA1(18a4e8d0e968fff3b645b59a0023b0ef38d51924) )
@@ -4220,7 +4220,7 @@ ROM_START( dynamcopb ) /* Dynamite Cop (Export), Model 2B */
ROM_LOAD32_WORD("mpr-20810.27", 0x0800000, 0x400000, CRC(838a10a7) SHA1(a658f1864829058b1d419e7c001e47cd0ab06a20) )
ROM_LOAD32_WORD("mpr-20808.26", 0x0800002, 0x400000, CRC(706bd495) SHA1(f857b303afda6301b19d97dfe5c313126261716e) )
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
ROM_REGION( 0x080000, "audiocpu", 0 ) // Sound program
ROM_LOAD16_WORD_SWAP("epr-20811.30", 0x000000, 0x080000, CRC(a154b83e) SHA1(2640c6b6966f4a888329e583b6b713bd0e779b6b) )
@@ -4268,7 +4268,7 @@ ROM_START( dyndeka2b ) /* Dynamite Deka 2 (Japan), Model 2B */
ROM_LOAD32_WORD("mpr-20810.27", 0x0800000, 0x400000, CRC(838a10a7) SHA1(a658f1864829058b1d419e7c001e47cd0ab06a20) )
ROM_LOAD32_WORD("mpr-20808.26", 0x0800002, 0x400000, CRC(706bd495) SHA1(f857b303afda6301b19d97dfe5c313126261716e) )
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
ROM_REGION( 0x080000, "audiocpu", 0 ) // Sound program
ROM_LOAD16_WORD_SWAP("epr-20811.30", 0x000000, 0x080000, CRC(a154b83e) SHA1(2640c6b6966f4a888329e583b6b713bd0e779b6b) )
@@ -4300,7 +4300,7 @@ ROM_START( dynamcopc ) /* Dynamite Cop (USA), Model 2C */
ROM_LOAD32_WORD("mpr-20791.4", 0x1800000, 0x400000, CRC(4883d0df) SHA1(b98af63e81f6c1b2766d7e96acbd1821bba000d4) ) /* Located at position 5 on 2C-CRX rom board */
ROM_LOAD32_WORD("mpr-20792.5", 0x1800002, 0x400000, CRC(47becfa2) SHA1(a333885872a64b322f3cb464a70352d73654b1b3) ) /* Located at position 6 on 2C-CRX rom board */
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 ) // TGPx4 program (COPRO sockets)
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 ) // TGPx4 program (COPRO sockets)
ROM_REGION( 0x2000000, "polygons", 0 ) // Models
ROM_LOAD32_WORD("mpr-20799.16", 0x0000000, 0x400000, CRC(424571bf) SHA1(18a4e8d0e968fff3b645b59a0023b0ef38d51924) ) /* Located at position 17 on 2C-CRX rom board */
@@ -4359,7 +4359,7 @@ ROM_START( schamp ) /* Sonic Championship, Model 2B - Sega ROM board ID# 834-127
ROM_COPY( "main_data", 0x1000000, 0x1e00000, 0x100000 )
ROM_COPY( "main_data", 0x1000000, 0x1f00000, 0x100000 )
- ROM_REGION( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc)
ROM_LOAD32_WORD("mpr-19015.29", 0x000000, 0x200000, CRC(c74d99e3) SHA1(9914be9925b86af6af670745b5eba3a9e4f24af9) )
ROM_LOAD32_WORD("mpr-19016.30", 0x000002, 0x200000, CRC(746ae931) SHA1(a6f0f589ad174a34493ee24dc0cb509ead3aed70) )
@@ -4413,7 +4413,7 @@ ROM_START( sfight ) /* Sonic The Fighters, Model 2B */
ROM_COPY( "main_data", 0x1000000, 0x1e00000, 0x100000 )
ROM_COPY( "main_data", 0x1000000, 0x1f00000, 0x100000 )
- ROM_REGION( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc)
ROM_LOAD32_WORD("mpr-19015.29", 0x000000, 0x200000, CRC(c74d99e3) SHA1(9914be9925b86af6af670745b5eba3a9e4f24af9) )
ROM_LOAD32_WORD("mpr-19016.30", 0x000002, 0x200000, CRC(746ae931) SHA1(a6f0f589ad174a34493ee24dc0cb509ead3aed70) )
@@ -4457,7 +4457,7 @@ ROM_START( stcc ) /* Sega Touring Car Championship, Model 2C - Defaults to Japan
ROM_COPY("main_data", 0x800000, 0xe00000, 0x100000)
ROM_COPY("main_data", 0x800000, 0xf00000, 0x100000)
- ROM_REGION( 0x800000, "copro_data", 0 ) // TGPx4 program
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // TGPx4 program
ROM_LOAD32_WORD("mpr-19255.29", 0x000000, 0x200000, CRC(d78bf030) SHA1(e6b3d8422613d22db50cf6c251f9a21356d96653) )
ROM_LOAD32_WORD("mpr-19256.30", 0x000002, 0x200000, CRC(cb2b2d9e) SHA1(86b2b8bb6074352f72eb81e616093a1ba6f5163f) )
@@ -4522,7 +4522,7 @@ ROM_START( stccb ) /* Sega Touring Car Championship Revision B, Model 2C - Defau
ROM_COPY("main_data", 0x800000, 0xe00000, 0x100000)
ROM_COPY("main_data", 0x800000, 0xf00000, 0x100000)
- ROM_REGION( 0x800000, "copro_data", 0 ) // TGPx4 program
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // TGPx4 program
ROM_LOAD32_WORD("mpr-19255.29", 0x000000, 0x200000, CRC(d78bf030) SHA1(e6b3d8422613d22db50cf6c251f9a21356d96653) )
ROM_LOAD32_WORD("mpr-19256.30", 0x000002, 0x200000, CRC(cb2b2d9e) SHA1(86b2b8bb6074352f72eb81e616093a1ba6f5163f) )
@@ -4587,7 +4587,7 @@ ROM_START( stcca ) /* Sega Touring Car Championship Revision A, Model 2C - Defau
ROM_COPY("main_data", 0x800000, 0xe00000, 0x100000)
ROM_COPY("main_data", 0x800000, 0xf00000, 0x100000)
- ROM_REGION( 0x800000, "copro_data", 0 ) // TGPx4 program
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // TGPx4 program
ROM_LOAD32_WORD("mpr-19255.29", 0x000000, 0x200000, CRC(d78bf030) SHA1(e6b3d8422613d22db50cf6c251f9a21356d96653) )
ROM_LOAD32_WORD("mpr-19256.30", 0x000002, 0x200000, CRC(cb2b2d9e) SHA1(86b2b8bb6074352f72eb81e616093a1ba6f5163f) )
@@ -4647,7 +4647,7 @@ ROM_START( skisuprg ) /* Sega Ski Super G, Model 2C, Sega Game ID# 833-12861, RO
ROM_LOAD32_WORD( "mpr-19492.9", 0x800000, 0x400000, CRC(4805318f) SHA1(dbd1359817933313c6d74d3a1450682e8ce5857a) )
ROM_LOAD32_WORD( "mpr-19493.10", 0x800002, 0x400000, CRC(39daa909) SHA1(e29e50c7fc39bd4945f993ceaa100358054efc5a) )
- ROM_REGION( 0x800000, "copro_data", 0 ) // TGPx4 program
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // TGPx4 program
ROM_LOAD32_WORD( "mpr-19502.29", 0x000000, 0x400000, CRC(2212d8d6) SHA1(3b8a4da2dc00a1eac41b48cbdc322ea1c31b8b29) )
ROM_LOAD32_WORD( "mpr-19503.30", 0x000002, 0x400000, CRC(3c9cfc73) SHA1(2213485a00cef0bcef11b67f00027c4159c5e2f5) )
@@ -4692,7 +4692,7 @@ ROM_START( segawski ) /* Sega Water Ski Revision A, Model 2C, Sega Game ID# 833-
ROM_COPY( "main_data", 0x1800000, 0x1e00000, 0x100000 )
ROM_COPY( "main_data", 0x1800000, 0x1f00000, 0x100000 )
- ROM_REGION( 0x800000, "copro_data", 0 ) // TGPx4 program
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // TGPx4 program
ROM_LOAD32_WORD("mpr-19986.29", 0x0000000, 0x400000, CRC(4b8e26f8) SHA1(859e3788c75599295a8b57ed7852f2cbb6a2a738) )
ROM_LOAD32_WORD("mpr-19987.30", 0x0000002, 0x400000, CRC(8d5b9d38) SHA1(35f41c474af3754152aecefe81e912120823e0ff) )
@@ -4745,7 +4745,7 @@ ROM_START( hotd ) /* House of the Dead, Model 2C, Sega Game ID# 610-0396-13054,
ROM_COPY( "main_data", 0x1800000, 0x1f00000, 0x100000 )
- ROM_REGION( 0x800000, "copro_data", 0 ) // TGPx4 program
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // TGPx4 program
ROM_LOAD32_WORD("epr-19707.29", 0x000000, 0x080000, CRC(384fd133) SHA1(6d060378d0f801b04d12e7ee874f2fa0572992d9) )
ROM_LOAD32_WORD("epr-19706.30", 0x000002, 0x080000, CRC(1277531c) SHA1(08d3e733ba9989fcd32290634171c73f26ab6e2b) )
@@ -4794,7 +4794,7 @@ ROM_START( hotdp )
ROM_COPY( "main_data", 0x1800000, 0x1f00000, 0x100000 )
- ROM_REGION( 0x800000, "copro_data", 0 ) // TGPx4 program
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // TGPx4 program
ROM_LOAD32_WORD("copro0.29", 0x000000, 0x200000, CRC(fc2380f5) SHA1(02a2f8bfc3915787f3aa9645de8a0af4450cea33) )
ROM_LOAD32_WORD("copro1.30", 0x000002, 0x200000, CRC(e6ae8f3c) SHA1(9a2c3d3b305e4707f7691d6242ff1bf47d1ced10) )
@@ -4841,7 +4841,7 @@ ROM_START( lastbrnx ) /* Last Bronx Revision A (Export), Model 2B */
ROM_LOAD32_WORD("mpr-19055.27", 0x000000, 0x200000, CRC(85a57d49) SHA1(99c49fe135dc46fa861337b5bac654ae8478778a) )
ROM_LOAD32_WORD("mpr-19054.25", 0x000002, 0x200000, CRC(05366277) SHA1(f618e2b9b26a1f7eccebfc8f8e17ef8ad9029be8) )
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
ROM_REGION( 0x080000, "audiocpu", 0 ) // Sound program
ROM_LOAD16_WORD_SWAP("mpr-19056.31", 0x000000, 0x080000, CRC(22a22918) SHA1(baa039cd86650b6cd81f295916c4d256e60cb29c) )
@@ -4870,7 +4870,7 @@ ROM_START( lastbrnxu ) /* Last Bronx Revision A (USA), Model 2B - Sega ROM board
ROM_LOAD32_WORD("mpr-19055.27", 0x000000, 0x200000, CRC(85a57d49) SHA1(99c49fe135dc46fa861337b5bac654ae8478778a) )
ROM_LOAD32_WORD("mpr-19054.25", 0x000002, 0x200000, CRC(05366277) SHA1(f618e2b9b26a1f7eccebfc8f8e17ef8ad9029be8) )
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
ROM_REGION( 0x080000, "audiocpu", 0 ) // Sound program
ROM_LOAD16_WORD_SWAP("mpr-19056.31", 0x000000, 0x080000, CRC(22a22918) SHA1(baa039cd86650b6cd81f295916c4d256e60cb29c) )
@@ -4899,7 +4899,7 @@ ROM_START( lastbrnxj ) /* Last Bronx Revision A (Japan), Model 2B */
ROM_LOAD32_WORD("mpr-19055.27", 0x000000, 0x200000, CRC(85a57d49) SHA1(99c49fe135dc46fa861337b5bac654ae8478778a) )
ROM_LOAD32_WORD("mpr-19054.25", 0x000002, 0x200000, CRC(05366277) SHA1(f618e2b9b26a1f7eccebfc8f8e17ef8ad9029be8) )
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
ROM_REGION( 0x080000, "audiocpu", 0 ) // Sound program
ROM_LOAD16_WORD_SWAP("mpr-19056.31", 0x000000, 0x080000, CRC(22a22918) SHA1(baa039cd86650b6cd81f295916c4d256e60cb29c) )
@@ -4918,7 +4918,7 @@ ROM_START( pltkidsa ) /* Pilot Kids, Model 2A */
ROM_LOAD32_WORD("mpr-21262.da0", 0x000000, 0x400000, CRC(aa71353e) SHA1(6eb5e8284734f01beec1dbbee049b6b7672e2504) )
ROM_LOAD32_WORD("mpr-21263.da1", 0x000002, 0x400000, CRC(d55d4509) SHA1(641db6ec3e9266f8265a4b541bcd8c2f7d164cc3) )
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
ROM_REGION( 0x2000000, "polygons", 0 ) // Models
ROM_LOAD32_WORD("mpr-21264.tp0", 0x0000000, 0x400000, CRC(6b35204d) SHA1(3a07701b140eb3088fad29c8b2d9c1e1e7ef9471) )
@@ -4977,7 +4977,7 @@ ROM_START( pltkids ) /* Pilot Kids Revision A, Model 2B */
ROM_LOAD32_WORD("mpr-21275.tx3", 0x0800000, 0x400000, CRC(c4870b7c) SHA1(feb8a34acb620a36ed5aea92d22622a76d7e1b29) )
ROM_LOAD32_WORD("mpr-21273.tx2", 0x0800002, 0x400000, CRC(722ec8a2) SHA1(1a1dc92488cde6284a96acce80e47a9cceccde76) )
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
ROM_REGION( 0x080000, "audiocpu", 0 ) // Sound program
ROM_LOAD16_WORD_SWAP("epr-21276.sd0", 0x000000, 0x080000, CRC(8f415bc3) SHA1(4e8e1ccbe025deca42fcf2582f3da46fa34780b7) )
@@ -5020,7 +5020,7 @@ ROM_START( indy500 ) /* Defaults to Twin (Stand Alone) Cab version. 2 credits t
ROM_COPY( "main_data", 0x1000000, 0x1e00000, 0x100000 )
ROM_COPY( "main_data", 0x1000000, 0x1f00000, 0x100000 )
- ROM_REGION( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc)
ROM_LOAD32_WORD("epr-18249.29", 0x000000, 0x080000, CRC(a399f023) SHA1(8b453313c16d935701ed7dbf71c1607c40aede63) )
ROM_LOAD32_WORD("epr-18250.30", 0x000002, 0x080000, CRC(7479ad52) SHA1(d453e25709cd5970cd21bdc8b4785bc8eb5a50d7) )
@@ -5072,7 +5072,7 @@ ROM_START( indy500d ) /* Defaults to Deluxe (Stand Alone) Cab version. 3 credits
ROM_COPY( "main_data", 0x1000000, 0x1e00000, 0x100000 )
ROM_COPY( "main_data", 0x1000000, 0x1f00000, 0x100000 )
- ROM_REGION( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc)
ROM_LOAD32_WORD("epr-18249.29", 0x000000, 0x080000, CRC(a399f023) SHA1(8b453313c16d935701ed7dbf71c1607c40aede63) )
ROM_LOAD32_WORD("epr-18250.30", 0x000002, 0x080000, CRC(7479ad52) SHA1(d453e25709cd5970cd21bdc8b4785bc8eb5a50d7) )
@@ -5124,7 +5124,7 @@ ROM_START( indy500to ) /* Defaults to Twin (Stand Alone) Cab version. 2 credits
ROM_COPY( "main_data", 0x1000000, 0x1e00000, 0x100000 )
ROM_COPY( "main_data", 0x1000000, 0x1f00000, 0x100000 )
- ROM_REGION( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc)
ROM_LOAD32_WORD("epr-18249.29", 0x000000, 0x080000, CRC(a399f023) SHA1(8b453313c16d935701ed7dbf71c1607c40aede63) )
ROM_LOAD32_WORD("epr-18250.30", 0x000002, 0x080000, CRC(7479ad52) SHA1(d453e25709cd5970cd21bdc8b4785bc8eb5a50d7) )
@@ -5176,7 +5176,7 @@ ROM_START( waverunr ) /* Wave Runner Revision A (Japan), Model 2C, Sega Game ID#
ROM_COPY( "main_data", 0x1000000, 0x1e00000, 0x100000 )
ROM_COPY( "main_data", 0x1000000, 0x1f00000, 0x100000 )
- ROM_REGION( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc)
ROM_LOAD32_WORD("epr-19280.29", 0x000000, 0x080000, CRC(c6b59fb9) SHA1(909663f440d19a34591d1f9707972c313e34f909) )
ROM_LOAD32_WORD("epr-19281.30", 0x000002, 0x080000, CRC(5a6110e7) SHA1(39ba8a35fdcfdd6c88b44ab392ca0e958da44767) )
@@ -5240,7 +5240,7 @@ ROM_START( rchase2 ) /* Rail Chase 2 Revision A, Model 2B. Sega game ID# 833-118
ROM_LOAD32_WORD("mpr-18043.5", 0xc00000, 0x200000, CRC(ff84dfd6) SHA1(82833bf4cb1f367aea5fec6cffb7023cbbd3c8cb) )
ROM_LOAD32_WORD("mpr-18044.6", 0xc00002, 0x200000, CRC(ab9b406d) SHA1(62e95ceea6f71eedbebae59e188aac03e6129e62) )
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASEFF ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASEFF ) // Copro extra data (collision/height map/etc)
/* empty?? */
ROM_REGION( 0x1000000, "polygons", 0 ) // Models
@@ -5343,7 +5343,7 @@ ROM_START( bel ) /* Behind Enemy Lines, Model 2C */
ROM_LOAD32_WORD("mpr-20227.5", 0xc00000, 0x200000, CRC(1277686e) SHA1(fff27006659458300001425261b944e690f1d494) )
ROM_LOAD32_WORD("mpr-20228.6", 0xc00002, 0x200000, CRC(49cb5568) SHA1(ee3273302830f3499c7d4e548b629c51e0369e8a) )
- ROM_REGION( 0x800000, "copro_data", 0 ) // TGPx4 program
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // TGPx4 program
ROM_LOAD32_WORD("mpr-20236.29", 0x000000, 0x200000, CRC(8de9a3c2) SHA1(e7fde1fd509531e1002ff813163067dc0d134536) )
ROM_LOAD32_WORD("mpr-20235.30", 0x000002, 0x200000, CRC(78fa11ef) SHA1(a60deabb662e9c09f5d6342dc1a1c6045744d93f) )
@@ -5384,7 +5384,7 @@ ROM_START( overrev ) /* Over Rev Revision A, Model 2C */
ROM_LOAD32_WORD( "mpr-19994.9", 0x800000, 0x400000, CRC(e691fbd5) SHA1(b99c2f3f2a682966d792917dfcb8ed8e53bc0b7a) )
ROM_LOAD32_WORD( "mpr-19995.10", 0x800002, 0x400000, CRC(82a7828e) SHA1(4336a12a07a67f94091b4a9b491bab02c375dd15) )
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 ) // TGPx4 program (COPRO sockets)
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 ) // TGPx4 program (COPRO sockets)
ROM_REGION( 0x800000, "polygons", 0 ) // Models (TGP sockets)
ROM_LOAD32_WORD( "mpr-19998.17", 0x000000, 0x200000, CRC(6a834574) SHA1(8be19bf42dbb157d6acde62a2018ef4c0d41aab4) )
@@ -5429,7 +5429,7 @@ ROM_START( overrevb ) /* Over Rev Revision B, Model 2B */
ROM_LOAD32_WORD( "mpr-19994.9", 0x800000, 0x400000, CRC(e691fbd5) SHA1(b99c2f3f2a682966d792917dfcb8ed8e53bc0b7a) )
ROM_LOAD32_WORD( "mpr-19995.10", 0x800002, 0x400000, CRC(82a7828e) SHA1(4336a12a07a67f94091b4a9b491bab02c375dd15) )
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
ROM_REGION( 0x800000, "polygons", 0 ) // Models
ROM_LOAD32_WORD( "mpr-19998.17", 0x000000, 0x200000, CRC(6a834574) SHA1(8be19bf42dbb157d6acde62a2018ef4c0d41aab4) )
@@ -5458,7 +5458,7 @@ ROM_START( overrevba ) /* Over Rev Revision A, Model 2B */
ROM_LOAD32_WORD( "mpr-19994.9", 0x800000, 0x400000, CRC(e691fbd5) SHA1(b99c2f3f2a682966d792917dfcb8ed8e53bc0b7a) )
ROM_LOAD32_WORD( "mpr-19995.10", 0x800002, 0x400000, CRC(82a7828e) SHA1(4336a12a07a67f94091b4a9b491bab02c375dd15) )
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
ROM_REGION( 0x800000, "polygons", 0 ) // Models
ROM_LOAD32_WORD( "mpr-19998.17", 0x000000, 0x200000, CRC(6a834574) SHA1(8be19bf42dbb157d6acde62a2018ef4c0d41aab4) )
@@ -5489,7 +5489,7 @@ ROM_START( rascot2 ) /* Royal Ascot 2, Model 2C, Rom Board : 837-12485 Com Board
ROM_LOAD32_WORD("mpr-20169.9", 0x800000, 0x400000, CRC(b5be4d6b) SHA1(cfb4696506efa0e93fab35bbeb87decd83aec040) )
ROM_LOAD32_WORD("mpr-20170.10", 0x800002, 0x400000, CRC(7b05cf33) SHA1(9e392ea0c7a9f4cef76d46ad92a7cf814022c133) )
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00) // TGPx4 program
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00) // TGPx4 program
ROM_REGION( 0x2000000, "polygons", 0 ) // Models
ROM_LOAD32_WORD("mpr-20173.17", 0x0000000, 0x400000, CRC(60bd684e) SHA1(893985808adb88fb54f0ca85ca23995d65360360) )
@@ -5525,7 +5525,7 @@ ROM_START( topskatr ) /* Top Skater Revision A (Export), Model 2C, Sega Game ID#
ROM_LOAD32_WORD("mpr-19737.9", 0x800000, 0x400000, CRC(281a7dde) SHA1(71d5ba434328a81969bfdc71ac1160c5ff3ae9d3) )
ROM_LOAD32_WORD("mpr-19738.10", 0x800002, 0x400000, CRC(f688327e) SHA1(68c9db242ef7e8f98979e968a09e4b093bc5d470) )
- ROM_REGION( 0x800000, "copro_data", 0 ) // TGPx4 program
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // TGPx4 program
ROM_LOAD32_WORD("mpr-19743.29", 0x000000, 0x200000, CRC(d41a41bf) SHA1(a5f6b24e6526d0d2ef9c526c273c018d1e0fed59) )
ROM_LOAD32_WORD("mpr-19744.30", 0x000002, 0x200000, CRC(84f203bf) SHA1(4952b764e6bf6cd735018738c5eff08781ee2315) )
@@ -5565,7 +5565,7 @@ ROM_START( topskatruo ) /* Top Skater (USA), Model 2C, Sega Game ID# 833-13080-0
ROM_LOAD32_WORD("mpr-19737.9", 0x800000, 0x400000, CRC(281a7dde) SHA1(71d5ba434328a81969bfdc71ac1160c5ff3ae9d3) )
ROM_LOAD32_WORD("mpr-19738.10", 0x800002, 0x400000, CRC(f688327e) SHA1(68c9db242ef7e8f98979e968a09e4b093bc5d470) )
- ROM_REGION( 0x800000, "copro_data", 0 ) // TGPx4 program
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // TGPx4 program
ROM_LOAD32_WORD("mpr-19743.29", 0x000000, 0x200000, CRC(d41a41bf) SHA1(a5f6b24e6526d0d2ef9c526c273c018d1e0fed59) )
ROM_LOAD32_WORD("mpr-19744.30", 0x000002, 0x200000, CRC(84f203bf) SHA1(4952b764e6bf6cd735018738c5eff08781ee2315) )
@@ -5605,7 +5605,7 @@ ROM_START( topskatru ) /* Top Skater Revision A (USA), Model 2C, Sega Game ID# 8
ROM_LOAD32_WORD("mpr-19737.9", 0x800000, 0x400000, CRC(281a7dde) SHA1(71d5ba434328a81969bfdc71ac1160c5ff3ae9d3) )
ROM_LOAD32_WORD("mpr-19738.10", 0x800002, 0x400000, CRC(f688327e) SHA1(68c9db242ef7e8f98979e968a09e4b093bc5d470) )
- ROM_REGION( 0x800000, "copro_data", 0 ) // TGPx4 program
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // TGPx4 program
ROM_LOAD32_WORD("mpr-19743.29", 0x000000, 0x200000, CRC(d41a41bf) SHA1(a5f6b24e6526d0d2ef9c526c273c018d1e0fed59) )
ROM_LOAD32_WORD("mpr-19744.30", 0x000002, 0x200000, CRC(84f203bf) SHA1(4952b764e6bf6cd735018738c5eff08781ee2315) )
@@ -5645,7 +5645,7 @@ ROM_START( topskatrj ) /* Top Skater (Japan), Model 2C, Sega Game ID# 833-13080-
ROM_LOAD32_WORD("mpr-19737.9", 0x800000, 0x400000, CRC(281a7dde) SHA1(71d5ba434328a81969bfdc71ac1160c5ff3ae9d3) )
ROM_LOAD32_WORD("mpr-19738.10", 0x800002, 0x400000, CRC(f688327e) SHA1(68c9db242ef7e8f98979e968a09e4b093bc5d470) )
- ROM_REGION( 0x800000, "copro_data", 0 ) // TGPx4 program
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // TGPx4 program
ROM_LOAD32_WORD("mpr-19743.29", 0x000000, 0x200000, CRC(d41a41bf) SHA1(a5f6b24e6526d0d2ef9c526c273c018d1e0fed59) )
ROM_LOAD32_WORD("mpr-19744.30", 0x000002, 0x200000, CRC(84f203bf) SHA1(4952b764e6bf6cd735018738c5eff08781ee2315) )
@@ -5690,7 +5690,7 @@ ROM_START( doaa ) /* Dead or Alive Revision A, Model 2A, Sega Game ID# 833-11341
ROM_LOAD32_WORD("mpr-19313.6", 0x1800002, 0x200000, CRC(8c63055e) SHA1(9f375b3f4a8884163ffcf364989499f2cd21e18b) )
ROM_COPY("main_data", 0x1800000, 0x1c00000, 0x400000 )
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
ROM_REGION( 0x2000000, "polygons", ROMREGION_ERASEFF ) // Models
ROM_LOAD32_WORD("mpr-19322.17", 0x0000000, 0x400000, CRC(d0e6ecf0) SHA1(1b87f6337b4286fd738856da899462e7baa92601) )
@@ -5745,7 +5745,7 @@ ROM_START( doa ) /* Dead or Alive Revision B, Model 2B, 837-12880 security board
ROM_LOAD32_WORD("mpr-19321.27", 0x000000, 0x400000, CRC(9c49e845) SHA1(344839640d9814263fa5ed00c2043cd6f18d5cb2) )
ROM_LOAD32_WORD("mpr-19320.25", 0x000002, 0x400000, CRC(190c017f) SHA1(4c3250b9abe39fc5c8fd0fcdb5fb7ea131434516) )
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
ROM_REGION( 0x080000, "audiocpu", 0 ) // Sound program
ROM_LOAD16_WORD_SWAP("epr-19328.30", 0x000000, 0x080000, CRC(400bdbfb) SHA1(54db969fa54cf3c502d77aa6a6aaeef5d7db9f04) )
@@ -5776,7 +5776,7 @@ ROM_START( sgt24h ) /* Super GT 24h, Model 2B */
ROM_LOAD32_WORD("mpr-19153.27", 0x000000, 0x200000, CRC(136adfd0) SHA1(70ce4e609c8b003ff04518044c18d29089e6a353) )
ROM_LOAD32_WORD("mpr-19152.25", 0x000002, 0x200000, CRC(363769a2) SHA1(51b2f11a01fb72e151025771f8a8496993e605c2) )
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
ROM_REGION( 0x20000, "cpu4", 0) // Communication program
ROM_LOAD16_WORD_SWAP("epr-18643a.7", 0x000000, 0x20000, CRC(b5e048ec) SHA1(8182e05a2ffebd590a936c1359c81e60caa79c2a) )
@@ -5801,7 +5801,7 @@ ROM_START( von ) /* Virtual On Cyber Troopers Revision B (US), Model 2B, Sega Ga
ROM_LOAD32_WORD("mpr-18650.9", 0x800000, 0x400000, CRC(89a855b9) SHA1(5096db1da1f7e175000e89fca2a1dd3fd53030ea) )
ROM_LOAD32_WORD("mpr-18651.10", 0x800002, 0x400000, CRC(f4c23107) SHA1(f65984614111b12dd414db80751efe64fcf5ef16) )
- ROM_REGION( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc)
ROM_LOAD32_WORD("mpr-18662.29", 0x000000, 0x200000, CRC(a33d3335) SHA1(991bbe9dcbef8bfa96682e9d142623fc9b7c0879) )
ROM_LOAD32_WORD("mpr-18663.30", 0x000002, 0x200000, CRC(ea74a641) SHA1(a684e13c0afe2ef3f3108ae9b73389121368fc4e) )
@@ -5841,7 +5841,7 @@ ROM_START( vonj ) /* Virtual On Cyber Troopers Revision B (Japan), Model 2B */
ROM_LOAD32_WORD("mpr-18650.9", 0x800000, 0x400000, CRC(89a855b9) SHA1(5096db1da1f7e175000e89fca2a1dd3fd53030ea) )
ROM_LOAD32_WORD("mpr-18651.10", 0x800002, 0x400000, CRC(f4c23107) SHA1(f65984614111b12dd414db80751efe64fcf5ef16) )
- ROM_REGION( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc)
ROM_LOAD32_WORD("mpr-18662.29", 0x000000, 0x200000, CRC(a33d3335) SHA1(991bbe9dcbef8bfa96682e9d142623fc9b7c0879) )
ROM_LOAD32_WORD("mpr-18663.30", 0x000002, 0x200000, CRC(ea74a641) SHA1(a684e13c0afe2ef3f3108ae9b73389121368fc4e) )
@@ -5881,7 +5881,7 @@ ROM_START( vonr ) /* Virtual On Cyber Troopers Relay (Japan) */
ROM_LOAD32_WORD("mpr-18650.9", 0x800000, 0x400000, CRC(89a855b9) SHA1(5096db1da1f7e175000e89fca2a1dd3fd53030ea) )
ROM_LOAD32_WORD("mpr-18651.10", 0x800002, 0x400000, CRC(f4c23107) SHA1(f65984614111b12dd414db80751efe64fcf5ef16) )
- ROM_REGION( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc)
ROM_LOAD32_WORD("mpr-18662.29", 0x000000, 0x200000, CRC(a33d3335) SHA1(991bbe9dcbef8bfa96682e9d142623fc9b7c0879) )
ROM_LOAD32_WORD("mpr-18663.30", 0x000002, 0x200000, CRC(ea74a641) SHA1(a684e13c0afe2ef3f3108ae9b73389121368fc4e) )
@@ -5933,7 +5933,7 @@ ROM_START( vstriker ) /* Virtua Striker Revision A, Model 2B, ROM board ID# 834-
ROM_LOAD32_WORD("mpr-18062.27", 0x000000, 0x200000, CRC(126e7de3) SHA1(0810364934dee8d5035cef623d01dfbacc64bf2b) )
ROM_LOAD32_WORD("mpr-18061.25", 0x000002, 0x200000, CRC(c37f1c67) SHA1(c917046c2d98af17c59ceb0ea4f89d215cc0ead8) )
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
ROM_REGION( 0x080000, "audiocpu", 0 ) // Sound program
ROM_LOAD16_WORD_SWAP("epr-18072.31", 0x000000, 0x020000, CRC(73eabb58) SHA1(4f6d70d6e0d7b469c5f2527efb08f208f4aa017e) )
@@ -5969,7 +5969,7 @@ ROM_START( vstrikero ) /* Virtua Striker, Model 2B, ROM board ID# 834-11904 */
ROM_LOAD32_WORD("mpr-18062.27", 0x000000, 0x200000, CRC(126e7de3) SHA1(0810364934dee8d5035cef623d01dfbacc64bf2b) )
ROM_LOAD32_WORD("mpr-18061.25", 0x000002, 0x200000, CRC(c37f1c67) SHA1(c917046c2d98af17c59ceb0ea4f89d215cc0ead8) )
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
ROM_REGION( 0x080000, "audiocpu", 0 ) // Sound program
ROM_LOAD16_WORD_SWAP("epr-18072.31", 0x000000, 0x020000, CRC(73eabb58) SHA1(4f6d70d6e0d7b469c5f2527efb08f208f4aa017e) )
@@ -6007,7 +6007,7 @@ ROM_START( dynabb ) /* Dynamite Baseball, Model 2B. Sega game ID# 833-12803 DYNA
ROM_LOAD32_WORD("mpr-19183.27", 0x000000, 0x400000, CRC(5e29074b) SHA1(f4dfa396653aeb649ec170c9584ea1a74377929a) )
ROM_LOAD32_WORD("mpr-19182.25", 0x000002, 0x400000, CRC(c899923d) SHA1(15cc86c885329227d3c19e9837363eaf6c38829b) )
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
ROM_REGION( 0x080000, "audiocpu", 0 ) // Sound program
ROM_LOAD16_WORD_SWAP("epr-19184.31", 0x000000, 0x080000, CRC(c013a163) SHA1(c564df8295e3c19082ead0eb22478dc651e0b430) )
@@ -6045,7 +6045,7 @@ ROM_START( dynabb97 ) /* Dynamite Baseball 97 Revision A, Model 2B */
ROM_LOAD32_WORD("mpr-19848.27", 0x000000, 0x400000, CRC(4c0526b7) SHA1(e8db7125be8a052e41a00c69cc08ca0d75b3b96f) )
ROM_LOAD32_WORD("mpr-19847.25", 0x000002, 0x400000, CRC(fe55edbd) SHA1(b0b6135b23349d7d6ae007002d8df83748cab7b1) )
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
ROM_REGION( 0x080000, "audiocpu", 0 ) // Sound program
ROM_LOAD16_WORD_SWAP("epr-19849.31", 0x000000, 0x080000, CRC(b0d5bff0) SHA1(1fb824adaf3ed330a8039be726a87eb85c00abd7) )
@@ -6088,7 +6088,7 @@ ROM_START( fvipers ) /* Fighting Vipers Revision D, Model 2B, Sega Game ID# 833-
ROM_COPY( "main_data", 0x1800000, 0x1e00000, 0x100000 )
ROM_COPY( "main_data", 0x1800000, 0x1f00000, 0x100000 )
- ROM_REGION( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc)
ROM_LOAD32_WORD("mpr-18622.29", 0x000000, 0x200000, CRC(c74d99e3) SHA1(9914be9925b86af6af670745b5eba3a9e4f24af9) )
ROM_LOAD32_WORD("mpr-18623.30", 0x000002, 0x200000, CRC(746ae931) SHA1(a6f0f589ad174a34493ee24dc0cb509ead3aed70) )
@@ -6147,7 +6147,7 @@ ROM_START( fvipersb ) /* Fighting Vipers Revision B, Model 2B, Sega Game ID# 833
ROM_COPY( "main_data", 0x1800000, 0x1e00000, 0x100000 )
ROM_COPY( "main_data", 0x1800000, 0x1f00000, 0x100000 )
- ROM_REGION( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc)
ROM_LOAD32_WORD("mpr-18622.29", 0x000000, 0x200000, CRC(c74d99e3) SHA1(9914be9925b86af6af670745b5eba3a9e4f24af9) )
ROM_LOAD32_WORD("mpr-18623.30", 0x000002, 0x200000, CRC(746ae931) SHA1(a6f0f589ad174a34493ee24dc0cb509ead3aed70) )
@@ -6195,7 +6195,7 @@ ROM_START( daytona ) /* Daytona USA (Japan, Revision A), Original Model 2 w/Mode
ROM_COPY( "main_data", 0x800000, 0xe00000, 0x100000 )
ROM_COPY( "main_data", 0x800000, 0xf00000, 0x100000 )
- ROM_REGION( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
ROM_LOAD32_WORD("mpr-16537.ic28", 0x000000, 0x200000, CRC(36b7c35a) SHA1(b32fd1d3fc8983fb5f2a7b236b665a8c9b52769f) )
ROM_LOAD32_WORD("mpr-16536.ic29", 0x000002, 0x200000, CRC(6d6afed9) SHA1(2018468d7d849854b3d0cfbcd217317e2fc93555) )
@@ -6256,7 +6256,7 @@ ROM_START( daytonase ) /* Daytona USA (Japan, Revision A), Original Model 2 w/Mo
ROM_COPY( "main_data", 0x800000, 0xe00000, 0x100000 )
ROM_COPY( "main_data", 0x800000, 0xf00000, 0x100000 )
- ROM_REGION( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
ROM_LOAD32_WORD("mpr-16537.ic28", 0x000000, 0x200000, CRC(36b7c35a) SHA1(b32fd1d3fc8983fb5f2a7b236b665a8c9b52769f) )
ROM_LOAD32_WORD("mpr-16536.ic29", 0x000002, 0x200000, CRC(6d6afed9) SHA1(2018468d7d849854b3d0cfbcd217317e2fc93555) )
@@ -6316,7 +6316,7 @@ ROM_START( daytona93 ) /* Daytona USA, Deluxe cabinet, '93 version, ROM board ID
ROM_COPY( "main_data", 0x900000, 0xe00000, 0x100000 )
ROM_COPY( "main_data", 0x900000, 0xf00000, 0x100000 )
- ROM_REGION( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
ROM_LOAD32_WORD("mpr-16537.ic28", 0x000000, 0x200000, CRC(36b7c35a) SHA1(b32fd1d3fc8983fb5f2a7b236b665a8c9b52769f) )
ROM_LOAD32_WORD("mpr-16536.ic29", 0x000002, 0x200000, CRC(6d6afed9) SHA1(2018468d7d849854b3d0cfbcd217317e2fc93555) )
@@ -6377,7 +6377,7 @@ ROM_START( daytonas ) /* Daytona USA (With Saturn Adverts) */
ROM_COPY( "main_data", 0x800000, 0xe00000, 0x100000 )
ROM_COPY( "main_data", 0x800000, 0xf00000, 0x100000 )
- ROM_REGION( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
ROM_LOAD32_WORD("mpr-16537.ic28", 0x000000, 0x200000, CRC(36b7c35a) SHA1(b32fd1d3fc8983fb5f2a7b236b665a8c9b52769f) )
ROM_LOAD32_WORD("mpr-16536.ic29", 0x000002, 0x200000, CRC(6d6afed9) SHA1(2018468d7d849854b3d0cfbcd217317e2fc93555) )
@@ -6440,7 +6440,7 @@ ROM_START( daytonat )/* Daytona USA (Japan, Turbo hack) */
ROM_COPY( "main_data", 0x800000, 0xe00000, 0x100000 )
ROM_COPY( "main_data", 0x800000, 0xf00000, 0x100000 )
- ROM_REGION( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
ROM_LOAD32_WORD("mpr-16537.ic28", 0x000000, 0x200000, CRC(36b7c35a) SHA1(b32fd1d3fc8983fb5f2a7b236b665a8c9b52769f) )
ROM_LOAD32_WORD("mpr-16536.ic29", 0x000002, 0x200000, CRC(6d6afed9) SHA1(2018468d7d849854b3d0cfbcd217317e2fc93555) )
@@ -6501,7 +6501,7 @@ ROM_START( daytonata )/* Daytona USA (Japan, Turbo hack) */
ROM_COPY( "main_data", 0x800000, 0xe00000, 0x100000 )
ROM_COPY( "main_data", 0x800000, 0xf00000, 0x100000 )
- ROM_REGION( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
ROM_LOAD32_WORD("mpr-16537.ic28", 0x000000, 0x200000, CRC(36b7c35a) SHA1(b32fd1d3fc8983fb5f2a7b236b665a8c9b52769f) )
ROM_LOAD32_WORD("mpr-16536.ic29", 0x000002, 0x200000, CRC(6d6afed9) SHA1(2018468d7d849854b3d0cfbcd217317e2fc93555) )
@@ -6573,7 +6573,7 @@ ROM_START( daytonam ) /* Daytona USA (Japan, To The MAXX) */
ROM_COPY( "main_data", 0x800000, 0xe00000, 0x100000 )
ROM_COPY( "main_data", 0x800000, 0xf00000, 0x100000 )
- ROM_REGION( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
ROM_LOAD32_WORD("mpr-16537.ic28", 0x000000, 0x200000, CRC(36b7c35a) SHA1(b32fd1d3fc8983fb5f2a7b236b665a8c9b52769f) )
ROM_LOAD32_WORD("mpr-16536.ic29", 0x000002, 0x200000, CRC(6d6afed9) SHA1(2018468d7d849854b3d0cfbcd217317e2fc93555) )
@@ -6641,7 +6641,7 @@ ROM_START( daytonagtx )
ROM_LOAD32_WORD("bank0.bin", 0x000002, 0x080000, CRC(21b603b4) SHA1(3f8f83fbf2ce5055fa85075c95da617fe2a8738a) )
ROM_LOAD32_WORD("bank1.bin", 0x100002, 0x080000, CRC(c1971f23) SHA1(3db88552ff2166f6eb2a9200e8609b52c1266274) )
- ROM_REGION( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
ROM_LOAD32_WORD("mpr-16537.ic28", 0x000000, 0x200000, CRC(36b7c35a) SHA1(b32fd1d3fc8983fb5f2a7b236b665a8c9b52769f) )
ROM_LOAD32_WORD("mpr-16536.ic29", 0x000002, 0x200000, CRC(6d6afed9) SHA1(2018468d7d849854b3d0cfbcd217317e2fc93555) )
@@ -6697,7 +6697,7 @@ ROM_START( vcop ) /* Virtua Cop Revision B, Model 2 */
ROM_LOAD32_WORD( "epr-17168a.6", 0x800000, 0x080000, CRC(59091a37) SHA1(14591c7015aaf126755be584aa94c04e6de222fa) )
ROM_LOAD32_WORD( "epr-17169a.7", 0x800002, 0x080000, CRC(0495808d) SHA1(5b86a9a68c2b52f942aa8d858ee7a491f546a921) )
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 )
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 )
ROM_REGION( 0x1000000, "polygons", 0 ) // Models
ROM_LOAD32_WORD( "mpr-17159.16", 0x000000, 0x200000, CRC(e218727d) SHA1(1458d01d49936a0b8d497b62ff9ea940ca753b37) )
@@ -6737,7 +6737,7 @@ ROM_START( vcopa ) /* Virtua Cop Revision A, Model 2 */
ROM_LOAD32_WORD( "epr-17168a.6", 0x800000, 0x080000, CRC(59091a37) SHA1(14591c7015aaf126755be584aa94c04e6de222fa) )
ROM_LOAD32_WORD( "epr-17169a.7", 0x800002, 0x080000, CRC(0495808d) SHA1(5b86a9a68c2b52f942aa8d858ee7a491f546a921) )
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 )
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 )
ROM_REGION( 0x1000000, "polygons", 0 ) // Models
ROM_LOAD32_WORD( "mpr-17159.16", 0x000000, 0x200000, CRC(e218727d) SHA1(1458d01d49936a0b8d497b62ff9ea940ca753b37) )
@@ -6777,7 +6777,7 @@ ROM_START( desert ) /* Desert Tank, Model 2, Sega Game ID# 833-11002, ROM board
ROM_LOAD32_WORD("epr-16978.6", 0x800000, 0x080000, CRC(38b3e574) SHA1(a1133df608b0fbb9c53bbeb29138650c87845d2c) )
ROM_LOAD32_WORD("epr-16979.7", 0x800002, 0x080000, CRC(c314eb8b) SHA1(0c851dedd5c42b026195faed7d028924698a8b27) )
- ROM_REGION( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
+ ROM_REGION32_LE( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
ROM_LOAD32_WORD("epr-16981.28", 0x000000, 0x080000, CRC(ae847571) SHA1(32d0f9e685667ae9fddacea0b9f4ad6fb3a6fdad) )
ROM_LOAD32_WORD("epr-16980.29", 0x000002, 0x080000, CRC(5239b864) SHA1(e889556e0f1ea80de52afff563b0923f87cef7ab) )
@@ -6823,7 +6823,7 @@ ROM_START( powsled ) /* Power Sled Revision A, Model 2B, ROM board ID# 834-12969
ROM_LOAD32_WORD("fpr-19458.27", 0x000000, 0x400000, CRC(f24acca2) SHA1(7fd7da64e247e62aa6542e1ad1a9ea9527ac9e73) )
ROM_LOAD32_WORD("fpr-19457.25", 0x000002, 0x400000, CRC(79d7e6fa) SHA1(906986145c23fc87ea7205d7722302104665e2bb) )
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
ROM_REGION( 0x080000, "audiocpu", 0 ) // Sound program
ROM_LOAD16_WORD_SWAP("epr-19466.31", 0x000000, 0x020000, CRC(c42892a5) SHA1(8ef761f6da3febcdf29b2d9b1bdf60ee24530f3d) )
@@ -6849,7 +6849,7 @@ ROM_START( powsledr ) /* Power Sled Relay Revision A, Model 2B, ROM board ID# 83
ROM_LOAD32_WORD("fpr-19458.27", 0x000000, 0x400000, CRC(f24acca2) SHA1(7fd7da64e247e62aa6542e1ad1a9ea9527ac9e73) )
ROM_LOAD32_WORD("fpr-19457.25", 0x000002, 0x400000, CRC(79d7e6fa) SHA1(906986145c23fc87ea7205d7722302104665e2bb) )
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
ROM_REGION( 0x080000, "audiocpu", 0 ) // Sound program
ROM_LOAD16_WORD_SWAP("epr-19467.31", 0x000000, 0x020000, CRC(5e8b9763) SHA1(54c3671c74bb16c8b447e9cae9c49b6d05b27a3e) )
@@ -6876,7 +6876,7 @@ ROM_START( powsledm ) // Main unit is not dumped, temporary we use relay dump pl
ROM_LOAD32_WORD("fpr-19458.27", 0x000000, 0x400000, CRC(f24acca2) SHA1(7fd7da64e247e62aa6542e1ad1a9ea9527ac9e73) )
ROM_LOAD32_WORD("fpr-19457.25", 0x000002, 0x400000, CRC(79d7e6fa) SHA1(906986145c23fc87ea7205d7722302104665e2bb) )
- ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
+ ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
ROM_REGION( 0x080000, "audiocpu", 0 ) // Sound program
ROM_LOAD16_WORD_SWAP("epr-19467.31", 0x000000, 0x020000, CRC(5e8b9763) SHA1(54c3671c74bb16c8b447e9cae9c49b6d05b27a3e) )
diff --git a/docs/release/src/mame/machine/mhavoc.cpp b/docs/release/src/mame/machine/mhavoc.cpp
index d0c03a36dd4..7b0d352cb24 100644
--- a/docs/release/src/mame/machine/mhavoc.cpp
+++ b/docs/release/src/mame/machine/mhavoc.cpp
@@ -320,6 +320,6 @@ WRITE8_MEMBER(mhavoc_state::mhavocrv_speech_strobe_w)
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));
+ m_gamma->space(AS_PROGRAM).install_write_handler(0x5800, 0x5800, write8_delegate(*this, FUNC(mhavoc_state::mhavocrv_speech_data_w)));
+ m_gamma->space(AS_PROGRAM).install_write_handler(0x5900, 0x5900, write8_delegate(*this, FUNC(mhavoc_state::mhavocrv_speech_strobe_w)));
}
diff --git a/docs/release/src/mame/video/decbac06.cpp b/docs/release/src/mame/video/decbac06.cpp
index 778ddcfc853..621768962cc 100644
--- a/docs/release/src/mame/video/decbac06.cpp
+++ b/docs/release/src/mame/video/decbac06.cpp
@@ -220,27 +220,27 @@ void deco_bac06_device::create_tilemaps(int region8x8, int region16x16)
m_tile_region_8 = region8x8;
m_tile_region_16 = region16x16;
- m_pf8x8_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf8x8_tile_info),this),tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape0_8x8_scan),this), 8, 8,128, 32);
- m_pf8x8_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf8x8_tile_info),this),tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape1_8x8_scan),this), 8, 8, 64, 64);
- m_pf8x8_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf8x8_tile_info),this),tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape2_8x8_scan),this), 8, 8, 32,128);
+ m_pf8x8_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco_bac06_device::get_pf8x8_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco_bac06_device::tile_shape0_8x8_scan)), 8, 8, 128, 32);
+ m_pf8x8_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco_bac06_device::get_pf8x8_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco_bac06_device::tile_shape1_8x8_scan)), 8, 8, 64, 64);
+ m_pf8x8_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco_bac06_device::get_pf8x8_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco_bac06_device::tile_shape2_8x8_scan)), 8, 8, 32, 128);
if (m_wide == 2)
{
- m_pf16x16_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this), tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape0_scan),this), 16, 16, 256, 16);
- m_pf16x16_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this), tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape1_scan),this), 16, 16, 128, 32);
- m_pf16x16_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this), tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape2_scan),this), 16, 16, 64, 64);
+ m_pf16x16_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco_bac06_device::get_pf16x16_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco_bac06_device::tile_shape0_scan)), 16, 16, 256, 16);
+ m_pf16x16_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco_bac06_device::get_pf16x16_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco_bac06_device::tile_shape1_scan)), 16, 16, 128, 32);
+ m_pf16x16_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco_bac06_device::get_pf16x16_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco_bac06_device::tile_shape2_scan)), 16, 16, 64, 64);
}
else if (m_wide == 1)
{
- m_pf16x16_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this), tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape0_scan),this), 16, 16, 128, 16);
- m_pf16x16_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this), tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape1_scan),this), 16, 16, 64, 32);
- m_pf16x16_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this), tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape2_scan),this), 16, 16, 32, 64);
+ m_pf16x16_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco_bac06_device::get_pf16x16_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco_bac06_device::tile_shape0_scan)), 16, 16, 128, 16);
+ m_pf16x16_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco_bac06_device::get_pf16x16_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco_bac06_device::tile_shape1_scan)), 16, 16, 64, 32);
+ m_pf16x16_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco_bac06_device::get_pf16x16_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco_bac06_device::tile_shape2_scan)), 16, 16, 32, 64);
}
else
{
- m_pf16x16_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this),tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape0_scan),this), 16, 16, 64, 16);
- m_pf16x16_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this),tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape1_scan),this), 16, 16, 32, 32);
- m_pf16x16_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this),tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape2_scan),this), 16, 16, 16, 64);
+ m_pf16x16_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco_bac06_device::get_pf16x16_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco_bac06_device::tile_shape0_scan)), 16, 16, 64, 16);
+ m_pf16x16_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco_bac06_device::get_pf16x16_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco_bac06_device::tile_shape1_scan)), 16, 16, 32, 32);
+ m_pf16x16_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco_bac06_device::get_pf16x16_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco_bac06_device::tile_shape2_scan)), 16, 16, 16, 64);
}
}
diff --git a/docs/release/src/osd/windows/winmain.h b/docs/release/src/osd/windows/winmain.h
index fa7f5acf8f7..6b0c9b42e3a 100644
--- a/docs/release/src/osd/windows/winmain.h
+++ b/docs/release/src/osd/windows/winmain.h
@@ -281,9 +281,10 @@ public:
// general overridables
virtual void init(running_machine &machine) override;
virtual void update(bool skip_redraw) override;
+ virtual void input_update() override;
// input overrideables
- virtual void customize_input_type_list(simple_list<input_type_entry> &typelist) override;
+ virtual void customize_input_type_list(std::vector<input_type_entry> &typelist) override;
// video overridables
virtual void add_audio_to_recording(const int16_t *buffer, int samples_this_frame) override;
diff --git a/docs/release/src/osd/winui/hbmameui.rc b/docs/release/src/osd/winui/hbmameui.rc
index 9c5b9b66922..9ca5f39aa05 100644
--- a/docs/release/src/osd/winui/hbmameui.rc
+++ b/docs/release/src/osd/winui/hbmameui.rc
@@ -736,6 +736,7 @@ BEGIN
CONTROL "Sync to monitor refresh",IDC_SYNCREFRESH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,52,93,10,0,HIDC_SYNCREFRESH
CONTROL "Wait for vertical sync",IDC_WAITVSYNC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,64,93,10,0,HIDC_WAITVSYNC
CONTROL "Refresh speed",IDC_REFRESHSPEED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,76,93,10,0,HIDC_REFRESHSPEED
+ CONTROL "Low Latency",IDC_LOWLATENCY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,88,93,10,0
GROUPBOX "Frame skipping",IDC_STATIC,4,104,103,42
CONTROL "Automatic",IDC_AUTOFRAMESKIP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,114,77,10,0,HIDC_AUTOFRAMESKIP
diff --git a/docs/release/src/osd/winui/properties.cpp b/docs/release/src/osd/winui/properties.cpp
index b39139461b7..e2b669db42c 100644
--- a/docs/release/src/osd/winui/properties.cpp
+++ b/docs/release/src/osd/winui/properties.cpp
@@ -2245,6 +2245,7 @@ static void BuildDataMap(void)
datamap_add(properties_datamap, IDC_SPEED, DM_FLOAT, OPTION_SPEED);
datamap_add(properties_datamap, IDC_SPEEDDISP, DM_FLOAT, OPTION_SPEED);
datamap_add(properties_datamap, IDC_REFRESHSPEED, DM_BOOL, OPTION_REFRESHSPEED);
+ datamap_add(properties_datamap, IDC_LOWLATENCY, DM_BOOL, OPTION_LOWLATENCY);
// core retation options
datamap_add(properties_datamap, IDC_ROTATE, DM_INT, NULL);
diff --git a/docs/release/src/osd/winui/resource.h b/docs/release/src/osd/winui/resource.h
index 8bdf3e5ed84..e484c045947 100644
--- a/docs/release/src/osd/winui/resource.h
+++ b/docs/release/src/osd/winui/resource.h
@@ -322,6 +322,7 @@
#define IDC_SNAPSIZETEXT 1252
#define IDC_SNAPSIZEX 1253
#define IDC_FILTER_MECHANICAL 1254
+#define IDC_LOWLATENCY 1257
#define IDC_BURNIN 1280
#define IDC_OVERRIDE_REDX 1352
#define IDC_SNAPBILINEAR 1353
diff --git a/docs/release/src/version.cpp b/docs/release/src/version.cpp
index 74c639e2e49..ebf4806b5c2 100644
--- a/docs/release/src/version.cpp
+++ b/docs/release/src/version.cpp
@@ -8,7 +8,7 @@
***************************************************************************/
-#define BARE_BUILD_VERSION "0.215"
+#define BARE_BUILD_VERSION "0.216"
extern const char bare_build_version[];
extern const char build_version[];