diff --git a/hash/fmtowns_cd.xml b/hash/fmtowns_cd.xml index d5aa57beb6a..c6ebc8b390b 100644 --- a/hash/fmtowns_cd.xml +++ b/hash/fmtowns_cd.xml @@ -1,7 +1,398 @@ - + + + + 3x3 Eyes: Sanjiyan Henjou + 1993 + Nihon Create + + + + + + + + + 4D Boxing + 1992 + Electronic Arts Victor + + + + + + + + + + 4D Driving + 1993 + Electronic Arts Victor + + + + + + + + + 4D Tennis + 1993 + Electronic Arts Victor + + + + + + + + + 38-man Kilo no Kokuu + 1989 + System Sacom + + + + + + + + + + + + + + A Ressha de Ikou III + 1991 + Artdink + + + + + + + + + A Ressha de Ikou IV + 1992 + Artdink + + + + + + + + + + + + + + Abel: Shin Mokushiroku Taisen + 1995 + Family Soft + + + + + + + + + Advantage Tennis + 1992 + Fujitsu + + + + + + + + + Aeternam + 1992 + Fujitsu + + + + + + + + + After Burner + 1989 + CRI + + + + + + + + + After Burner III + 1992 + CRI + + + + + + + + + Air Combat II Special + 1993 + Victor + + + + + + + + + Alice no Yakata CD + 1992 + Alice Soft + + + + + + + + + Alice no Yakata II + 1992 + Alice Soft + + + + + + + + + + Alice no Yakata III + 1995 + Alice Soft + + + + + + + + + Alone in the Dark + 1993 + Arrow Micro-Techs + + + + + + + + + Alone in the Dark 2 + 1994 + Arrow Micro-Techs + + + + + + + + + + Alshark + 1993 + Right Stuff + + + + + + + + + Amaranth III + 1994 + Fuga System + + + + + + + + + Ambivalenz + 1994 + Alice Soft + + + + + + + + + + + + + + America Oudan Ultra Quiz + 1994 + Fujitsu + + + + + + + + + Angel + 1993 + Cocktail Soft + + + + + + + + + Angel Halo + 1996 + Active + + + + + + + + + Aoki Ookami to Shiroki Mejika: Genchou Hishi + 1993 + Koei + + + + + + + + + Arabesque + 1994 + Fairytale + + + + + + + + + Aska Towns + 1989 + Algo Software + + + + + + + + + Asuka 120% Burning Fest. Excellent + 1994 + Family Soft + + + + + + + + + + + + + + Awesome + 1992 + Fujitsu + + + + + + + + + Ayumi-chan Monogatari + 1993 + Alice Soft + + + + + + + + + + + + + + Ayumi-chan Monogatari Jissha-ban + 1995 + Core Magazine + + + + + + + + + Azure + 1993 + Family Soft + + + + + + diff --git a/makefile b/makefile index 6aeb1685d1e..90be0b479ba 100644 --- a/makefile +++ b/makefile @@ -211,6 +211,9 @@ ifndef SUBTARGET SUBTARGET := $(TARGET) endif +SUBTARGET_FULL := $(subst -,_,$(SUBTARGET)) + + CONFIG = release ifdef DEBUG CONFIG := debug @@ -578,8 +581,8 @@ ifdef TARGET PARAMS += --target='$(TARGET)' endif -ifdef SUBTARGET -PARAMS += --subtarget='$(SUBTARGET)' +ifdef SUBTARGET_FULL +PARAMS += --subtarget='$(SUBTARGET_FULL)' endif ifdef OSD @@ -757,15 +760,15 @@ SCRIPTS = scripts/genie.lua \ scripts/toolchain.lua \ scripts/src/osd/modules.lua \ $(wildcard src/osd/$(OSD)/$(OSD).mak) \ - $(wildcard src/$(TARGET)/$(SUBTARGET).mak) + $(wildcard src/$(TARGET)/$(SUBTARGET_FULL).mak) -ifeq ($(SUBTARGET),mame) +ifeq ($(SUBTARGET_FULL),mame) SCRIPTS += scripts/target/$(TARGET)/arcade.lua SCRIPTS += scripts/target/$(TARGET)/mess.lua endif ifndef SOURCES -SCRIPTS += scripts/target/$(TARGET)/$(SUBTARGET).lua +SCRIPTS += scripts/target/$(TARGET)/$(SUBTARGET_FULL).lua endif ifdef REGENIE @@ -809,12 +812,12 @@ SRC = src # all 3rd party sources are under the 3rdparty/ directory 3RDPARTY = 3rdparty -ifeq ($(SUBTARGET),mame) -PROJECT_NAME := $(SUBTARGET) -else ifeq ($(SUBTARGET),mess) -PROJECT_NAME := $(SUBTARGET) +ifeq ($(SUBTARGET_FULL),mame) +PROJECT_NAME := $(SUBTARGET_FULL) +else ifeq ($(SUBTARGET_FULL),mess) +PROJECT_NAME := $(SUBTARGET_FULL) else -PROJECT_NAME := $(TARGET)$(SUBTARGET) +PROJECT_NAME := $(TARGET)$(SUBTARGET_FULL)) endif @@ -892,10 +895,10 @@ endif GENIE := 3rdparty/genie/bin/$(GENIEOS)/genie$(EXE) -ifeq ($(TARGET),$(SUBTARGET)) +ifeq ($(TARGET),$(SUBTARGET_FULL)) FULLTARGET := $(TARGET) else -FULLTARGET := $(TARGET)$(SUBTARGET) +FULLTARGET := $(TARGET)$(SUBTARGET_FULL) endif PROJECTDIR := $(BUILDDIR)/projects/$(OSD)/$(FULLTARGET) PROJECTDIR_SDL := $(BUILDDIR)/projects/sdl/$(FULLTARGET) @@ -1433,7 +1436,7 @@ clean: genieclean $(SILENT) $(MAKE) -C $(SRC)/devices/cpu/m68000 clean -@rm -rf 3rdparty/bgfx/.build -GEN_FOLDERS := $(GENDIR)/$(TARGET)/layout/ $(GENDIR)/$(TARGET)/$(SUBTARGET)/ +GEN_FOLDERS := $(GENDIR)/$(TARGET)/layout/ $(GENDIR)/$(TARGET)/$(SUBTARGET_FULL)/ rwildcard=$(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2) $(filter $(subst *,%,$2),$d)) LAYOUTS=$(wildcard $(SRC)/$(TARGET)/layout/*.lay) diff --git a/scripts/src/bus.lua b/scripts/src/bus.lua index 45008859194..7b749fd2926 100644 --- a/scripts/src/bus.lua +++ b/scripts/src/bus.lua @@ -2087,6 +2087,10 @@ end --------------------------------------------------- -- --@src/devices/bus/ti99x/990_dk.h,BUSES["TI99X"] = true +--@src/devices/bus/ti99x/990_tap.h,BUSES["TI99X"] = true +--@src/devices/bus/ti99x/990_hd.h,BUSES["TI99X"] = true +--@src/devices/bus/ti99x/genboard.h,BUSES["TI99X"] = true +--@src/devices/bus/ti99x/joyport.h,BUSES["TI99X"] = true --------------------------------------------------- if (BUSES["TI99X"]~=null) then diff --git a/scripts/src/cpu.lua b/scripts/src/cpu.lua index 69e9eace7ad..53f09b3abc0 100644 --- a/scripts/src/cpu.lua +++ b/scripts/src/cpu.lua @@ -1032,7 +1032,7 @@ end -------------------------------------------------- -- Fujitsu MB86235 ---@src/devices/cpu/mb86233/mb86235.h,CPUS["MB86235"] = true +--@src/devices/cpu/mb86235/mb86235.h,CPUS["MB86235"] = true -------------------------------------------------- if (CPUS["MB86235"]~=null) then @@ -1925,6 +1925,7 @@ end --@src/devices/cpu/tms9900/tms9900.h,CPUS["TMS9900"] = true --@src/devices/cpu/tms9900/tms9980a.h,CPUS["TMS9900"] = true --@src/devices/cpu/tms9900/tms9995.h,CPUS["TMS9900"] = true +--@src/devices/cpu/tms9900/ti990_10.h,CPUS["TMS9900"] = true -------------------------------------------------- if (CPUS["TMS9900"]~=null) then diff --git a/scripts/src/machine.lua b/scripts/src/machine.lua index f0345e44e40..589bf746219 100644 --- a/scripts/src/machine.lua +++ b/scripts/src/machine.lua @@ -2558,7 +2558,7 @@ end --------------------------------------------------- -- ---@src/devices/machine/ncr5389.h,MACHINES["NCR5390"] = true +--@src/devices/machine/ncr5390.h,MACHINES["NCR5390"] = true --------------------------------------------------- if (MACHINES["NCR5390"]~=null) then @@ -2831,3 +2831,46 @@ if (MACHINES["WATCHDOG"]~=null) then } end + +--------------------------------------------------- +-- +--@src/devices/machine/smartmed.h,MACHINES["SMARTMEDIA"] = true +--------------------------------------------------- +if (MACHINES["SMARTMEDIA"]~=null) then + files { + MAME_DIR .. "src/devices/machine/smartmed.cpp", + MAME_DIR .. "src/devices/machine/smartmed.h", + } +end + +--------------------------------------------------- +-- +--@src/devices/machine/appldriv.h,MACHINES["APPLE_DRIVE"] = true +--------------------------------------------------- +if (MACHINES["APPLE_DRIVE"]~=null) then + files { + MAME_DIR .. "src/devices/machine/appldriv.cpp", + MAME_DIR .. "src/devices/machine/appldriv.h", + } +end + +--------------------------------------------------- +-- +--@src/devices/machine/applefdc.h,MACHINES["APPLE_FDC"] = true +--------------------------------------------------- +if (MACHINES["APPLE_FDC"]~=null) then + files { + MAME_DIR .. "src/devices/machine/applefdc.cpp", + MAME_DIR .. "src/devices/machine/applefdc.h", + } +end +--------------------------------------------------- +-- +--@src/devices/machine/sonydriv.h,MACHINES["SONY_DRIVE"] = true +--------------------------------------------------- +if (MACHINES["SONY_DRIVE"]~=null) then + files { + MAME_DIR .. "src/devices/machine/sonydriv.cpp", + MAME_DIR .. "src/devices/machine/sonydriv.h", + } +end diff --git a/scripts/target/mame/arcade.lua b/scripts/target/mame/arcade.lua index 4c38cff8439..44455690819 100644 --- a/scripts/target/mame/arcade.lua +++ b/scripts/target/mame/arcade.lua @@ -1060,9 +1060,12 @@ files { MAME_DIR .. "src/mame/audio/orbit.cpp", MAME_DIR .. "src/mame/video/orbit.cpp", MAME_DIR .. "src/mame/drivers/pong.cpp", - MAME_DIR .. "src/mame/drivers/nl_pong.cpp", - MAME_DIR .. "src/mame/drivers/nl_pongd.cpp", - MAME_DIR .. "src/mame/drivers/nl_breakout.cpp", + MAME_DIR .. "src/mame/machine/nl_pong.cpp", + MAME_DIR .. "src/mame/machine/nl_pong.h", + MAME_DIR .. "src/mame/machine/nl_pongd.cpp", + MAME_DIR .. "src/mame/machine/nl_pongd.h", + MAME_DIR .. "src/mame/machine/nl_breakout.cpp", + MAME_DIR .. "src/mame/machine/nl_breakout.h", MAME_DIR .. "src/mame/drivers/poolshrk.cpp", MAME_DIR .. "src/mame/includes/poolshrk.h", MAME_DIR .. "src/mame/audio/poolshrk.cpp", @@ -2488,6 +2491,7 @@ files { MAME_DIR .. "src/mame/video/midyunit.cpp", MAME_DIR .. "src/mame/drivers/midzeus.cpp", MAME_DIR .. "src/mame/includes/midzeus.h", + MAME_DIR .. "src/mame/includes/midzeus2.h", MAME_DIR .. "src/mame/video/midzeus.cpp", MAME_DIR .. "src/mame/video/midzeus2.cpp", MAME_DIR .. "src/mame/drivers/mw18w.cpp", @@ -2556,7 +2560,7 @@ files { MAME_DIR .. "src/mame/drivers/namcofl.cpp", MAME_DIR .. "src/mame/includes/namcofl.h", MAME_DIR .. "src/mame/video/namcofl.cpp", - MAME_DIR .. "src/mame/drivers/namcoic.cpp", + MAME_DIR .. "src/mame/machine/namcoic.cpp", MAME_DIR .. "src/mame/includes/namcoic.h", MAME_DIR .. "src/mame/drivers/namcona1.cpp", MAME_DIR .. "src/mame/includes/namcona1.h", @@ -2889,9 +2893,13 @@ files { MAME_DIR .. "src/mame/includes/pacman.h", MAME_DIR .. "src/mame/video/pacman.cpp", MAME_DIR .. "src/mame/machine/acitya.cpp", + MAME_DIR .. "src/mame/machine/acitya.h", MAME_DIR .. "src/mame/machine/jumpshot.cpp", + MAME_DIR .. "src/mame/machine/jumpshot.h", MAME_DIR .. "src/mame/machine/pacplus.cpp", + MAME_DIR .. "src/mame/machine/pacplus.h", MAME_DIR .. "src/mame/machine/theglobp.cpp", + MAME_DIR .. "src/mame/machine/theglobp.h", MAME_DIR .. "src/mame/drivers/pengo.cpp", } @@ -3020,6 +3028,7 @@ files { MAME_DIR .. "src/mame/machine/megadriv.cpp", MAME_DIR .. "src/mame/includes/megadriv.h", MAME_DIR .. "src/mame/drivers/megadrvb.cpp", + MAME_DIR .. "src/mame/includes/megadrvb.h", MAME_DIR .. "src/mame/drivers/megaplay.cpp", MAME_DIR .. "src/mame/drivers/megatech.cpp", MAME_DIR .. "src/mame/drivers/model1.cpp", @@ -3341,8 +3350,9 @@ files { MAME_DIR .. "src/mame/video/hng64.cpp", MAME_DIR .. "src/mame/audio/hng64.cpp", MAME_DIR .. "src/mame/machine/hng64_net.cpp", - MAME_DIR .. "src/mame/video/hng64_3d.cpp", - MAME_DIR .. "src/mame/video/hng64_sprite.cpp", + MAME_DIR .. "src/mame/machine/hng64_net.h", + MAME_DIR .. "src/mame/video/hng64_3d.inc", + MAME_DIR .. "src/mame/video/hng64_sprite.inc", MAME_DIR .. "src/mame/drivers/lasso.cpp", MAME_DIR .. "src/mame/includes/lasso.h", MAME_DIR .. "src/mame/video/lasso.cpp", @@ -3463,6 +3473,7 @@ files { MAME_DIR .. "src/mame/drivers/asuka.cpp", MAME_DIR .. "src/mame/includes/asuka.h", MAME_DIR .. "src/mame/machine/bonzeadv.cpp", + MAME_DIR .. "src/mame/machine/bonzeadv.h", MAME_DIR .. "src/mame/video/asuka.cpp", MAME_DIR .. "src/mame/drivers/bigevglf.cpp", MAME_DIR .. "src/mame/includes/bigevglf.h", @@ -3630,6 +3641,7 @@ files { MAME_DIR .. "src/mame/drivers/taito_x.cpp", MAME_DIR .. "src/mame/includes/taito_x.h", MAME_DIR .. "src/mame/machine/cchip.cpp", + MAME_DIR .. "src/mame/machine/cchip.h", MAME_DIR .. "src/mame/drivers/taito_z.cpp", MAME_DIR .. "src/mame/includes/taito_z.h", MAME_DIR .. "src/mame/video/taito_z.cpp", @@ -3946,6 +3958,7 @@ files { MAME_DIR .. "src/mame/includes/mrdo.h", MAME_DIR .. "src/mame/video/mrdo.cpp", MAME_DIR .. "src/mame/drivers/redclash.cpp", + MAME_DIR .. "src/mame/includes/redclash.h", MAME_DIR .. "src/mame/video/redclash.cpp", MAME_DIR .. "src/mame/drivers/superdq.cpp", } diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index 8c9c9aca9f1..725426f376b 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -578,6 +578,10 @@ MACHINES["VT82C496"] = true MACHINES["GENPC"] = true MACHINES["GEN_LATCH"] = true MACHINES["WATCHDOG"] = true +MACHINES["SMARTMEDIA"] = true +MACHINES["APPLE_DRIVE"] = true +MACHINES["APPLE_FDC"] = true +MACHINES["SONY_DRIVE"] = true -------------------------------------------------- -- specify available bus cores @@ -1070,16 +1074,8 @@ createMESSProjects(_target, _subtarget, "messshared") files { MAME_DIR .. "src/mame/audio/mea8000.cpp", MAME_DIR .. "src/mame/audio/mea8000.h", - MAME_DIR .. "src/mame/machine/appldriv.cpp", - MAME_DIR .. "src/mame/machine/appldriv.h", - MAME_DIR .. "src/mame/machine/applefdc.cpp", - MAME_DIR .. "src/mame/machine/applefdc.h", MAME_DIR .. "src/mame/machine/microdrv.cpp", MAME_DIR .. "src/mame/machine/microdrv.h", - MAME_DIR .. "src/mame/machine/smartmed.cpp", - MAME_DIR .. "src/mame/machine/smartmed.h", - MAME_DIR .. "src/mame/machine/sonydriv.cpp", - MAME_DIR .. "src/mame/machine/sonydriv.h", MAME_DIR .. "src/mame/machine/teleprinter.cpp", MAME_DIR .. "src/mame/machine/teleprinter.h", MAME_DIR .. "src/mame/machine/z80bin.cpp", @@ -1206,6 +1202,7 @@ files { MAME_DIR .. "src/mame/drivers/apple2.cpp", MAME_DIR .. "src/mame/includes/apple2.h", MAME_DIR .. "src/mame/drivers/apple2e.cpp", + MAME_DIR .. "src/mame/includes/apple2e.h", MAME_DIR .. "src/mame/machine/apple2.cpp", MAME_DIR .. "src/mame/video/apple2.cpp", MAME_DIR .. "src/mame/video/apple2.h", @@ -1228,6 +1225,7 @@ files { MAME_DIR .. "src/mame/machine/egret.h", MAME_DIR .. "src/mame/machine/mac.cpp", MAME_DIR .. "src/mame/machine/macadb.cpp", + MAME_DIR .. "src/mame/machine/macadb.h", MAME_DIR .. "src/mame/machine/macrtc.cpp", MAME_DIR .. "src/mame/machine/macrtc.h", MAME_DIR .. "src/mame/machine/mackbd.cpp", @@ -1903,6 +1901,7 @@ files { MAME_DIR .. "src/mame/includes/kaypro.h", MAME_DIR .. "src/mame/machine/kaypro.cpp", MAME_DIR .. "src/mame/machine/kay_kbd.cpp", + MAME_DIR .. "src/mame/machine/kay_kbd.h", MAME_DIR .. "src/mame/video/kaypro.cpp", } @@ -2537,8 +2536,11 @@ files { MAME_DIR .. "src/mame/drivers/spectrum.cpp", MAME_DIR .. "src/mame/includes/spectrum.h", MAME_DIR .. "src/mame/drivers/spec128.cpp", + MAME_DIR .. "src/mame/includes/spec128.h", MAME_DIR .. "src/mame/drivers/timex.cpp", + MAME_DIR .. "src/mame/includes/timex.h", MAME_DIR .. "src/mame/drivers/specpls3.cpp", + MAME_DIR .. "src/mame/includes/specpls3.h", MAME_DIR .. "src/mame/drivers/scorpion.cpp", MAME_DIR .. "src/mame/drivers/atm.cpp", MAME_DIR .. "src/mame/drivers/pentagon.cpp", diff --git a/scripts/target/mame/nl.lua b/scripts/target/mame/nl.lua index 6abf50dcd1e..adc58847577 100644 --- a/scripts/target/mame/nl.lua +++ b/scripts/target/mame/nl.lua @@ -86,8 +86,8 @@ function createProjects_mame_nl(_target, _subtarget) targetsubdir(_target .."_" .. _subtarget) kind (LIBTYPE) uuid (os.uuid("drv-mame-nl")) - addprojectflags() - precompiledheaders() + addprojectflags() + precompiledheaders() includedirs { MAME_DIR .. "src/osd", @@ -103,9 +103,12 @@ function createProjects_mame_nl(_target, _subtarget) files{ MAME_DIR .. "src/mame/drivers/pong.cpp", - MAME_DIR .. "src/mame/drivers/nl_pong.cpp", - MAME_DIR .. "src/mame/drivers/nl_pongd.cpp", - MAME_DIR .. "src/mame/drivers/nl_breakout.cpp", + MAME_DIR .. "src/mame/machine/nl_pong.cpp", + MAME_DIR .. "src/mame/machine/nl_pong.h", + MAME_DIR .. "src/mame/machine/nl_pongd.cpp", + MAME_DIR .. "src/mame/machine/nl_pongd.h", + MAME_DIR .. "src/mame/machine/nl_breakout.cpp", + MAME_DIR .. "src/mame/machine/nl_breakout.h", MAME_DIR .. "src/mame/drivers/1942.cpp", MAME_DIR .. "src/mame/includes/1942.h", @@ -114,13 +117,13 @@ files{ MAME_DIR .. "src/mame/includes/popeye.h", MAME_DIR .. "src/mame/video/popeye.cpp", - MAME_DIR .. "src/mame/drivers/m62.cpp", - MAME_DIR .. "src/mame/includes/m62.h", - MAME_DIR .. "src/mame/video/m62.cpp", - MAME_DIR .. "src/mame/audio/irem.cpp", - MAME_DIR .. "src/mame/audio/nl_kidniki.cpp", - MAME_DIR .. "src/mame/audio/irem.h", - + MAME_DIR .. "src/mame/drivers/m62.cpp", + MAME_DIR .. "src/mame/includes/m62.h", + MAME_DIR .. "src/mame/video/m62.cpp", + MAME_DIR .. "src/mame/audio/irem.cpp", + MAME_DIR .. "src/mame/audio/irem.h", + MAME_DIR .. "src/mame/audio/nl_kidniki.cpp", + MAME_DIR .. "src/mame/audio/nl_kidniki.h", } end diff --git a/src/mame/machine/appldriv.cpp b/src/devices/machine/appldriv.cpp similarity index 100% rename from src/mame/machine/appldriv.cpp rename to src/devices/machine/appldriv.cpp diff --git a/src/mame/machine/appldriv.h b/src/devices/machine/appldriv.h similarity index 100% rename from src/mame/machine/appldriv.h rename to src/devices/machine/appldriv.h diff --git a/src/mame/machine/applefdc.cpp b/src/devices/machine/applefdc.cpp similarity index 100% rename from src/mame/machine/applefdc.cpp rename to src/devices/machine/applefdc.cpp diff --git a/src/mame/machine/applefdc.h b/src/devices/machine/applefdc.h similarity index 100% rename from src/mame/machine/applefdc.h rename to src/devices/machine/applefdc.h diff --git a/src/mame/machine/smartmed.cpp b/src/devices/machine/smartmed.cpp similarity index 100% rename from src/mame/machine/smartmed.cpp rename to src/devices/machine/smartmed.cpp diff --git a/src/mame/machine/smartmed.h b/src/devices/machine/smartmed.h similarity index 100% rename from src/mame/machine/smartmed.h rename to src/devices/machine/smartmed.h diff --git a/src/mame/machine/sonydriv.cpp b/src/devices/machine/sonydriv.cpp similarity index 100% rename from src/mame/machine/sonydriv.cpp rename to src/devices/machine/sonydriv.cpp diff --git a/src/mame/machine/sonydriv.h b/src/devices/machine/sonydriv.h similarity index 100% rename from src/mame/machine/sonydriv.h rename to src/devices/machine/sonydriv.h diff --git a/src/mame/drivers/apple2gs.cpp b/src/mame/drivers/apple2gs.cpp index 25e373ab4de..5fcb899002e 100644 --- a/src/mame/drivers/apple2gs.cpp +++ b/src/mame/drivers/apple2gs.cpp @@ -46,6 +46,7 @@ #include "emu.h" #include "cpu/g65816/g65816.h" #include "includes/apple2.h" +#include "includes/apple2e.h" #include "imagedev/flopdrv.h" #include "formats/ap2_dsk.h" #include "formats/ap_dsk35.h" diff --git a/src/mame/drivers/asuka.cpp b/src/mame/drivers/asuka.cpp index 6393dac93d3..109444c36d7 100644 --- a/src/mame/drivers/asuka.cpp +++ b/src/mame/drivers/asuka.cpp @@ -226,6 +226,7 @@ DIP locations verified for: #include "sound/2151intf.h" #include "sound/msm5205.h" #include "includes/asuka.h" +#include "machine/bonzeadv.h" /*********************************************************** diff --git a/src/mame/drivers/atm.cpp b/src/mame/drivers/atm.cpp index 300f503d90e..2f94d00ac3a 100644 --- a/src/mame/drivers/atm.cpp +++ b/src/mame/drivers/atm.cpp @@ -13,12 +13,15 @@ computer to boot up (with keyboard problems). #include "emu.h" #include "includes/spectrum.h" +#include "includes/spec128.h" +#include "includes/specpls3.h" #include "imagedev/snapquik.h" #include "imagedev/cassette.h" #include "sound/ay8910.h" #include "sound/speaker.h" #include "machine/beta.h" #include "machine/ram.h" +#include "machine/spec_snqk.h" class atm_state : public spectrum_state diff --git a/src/mame/drivers/hng64.cpp b/src/mame/drivers/hng64.cpp index 083f4dc2228..6f3a85b5f35 100644 --- a/src/mame/drivers/hng64.cpp +++ b/src/mame/drivers/hng64.cpp @@ -441,6 +441,7 @@ or Fatal Fury for example). #include "cpu/mips/mips3.h" #include "machine/nvram.h" #include "includes/hng64.h" +#include "machine/hng64_net.h" /* TODO: NOT measured! */ #define PIXEL_CLOCK ((HNG64_MASTER_CLOCK*2)/4) // x 2 is due of the interlaced screen ... @@ -1527,7 +1528,6 @@ void hng64_state::machine_reset() } MACHINE_CONFIG_EXTERN(hng64_audio); -MACHINE_CONFIG_EXTERN(hng64_network); static MACHINE_CONFIG_START(hng64, hng64_state) /* basic machine hardware */ diff --git a/src/mame/drivers/hshavoc.cpp b/src/mame/drivers/hshavoc.cpp index e4d0386c172..2706b98c034 100644 --- a/src/mame/drivers/hshavoc.cpp +++ b/src/mame/drivers/hshavoc.cpp @@ -42,6 +42,7 @@ Unfortunately it's read protected. #include "sound/2612intf.h" #include "sound/sn76496.h" #include "includes/megadriv.h" +#include "includes/megadrvb.h" static INPUT_PORTS_START( hshavoc ) PORT_START("IN0") /* 16bit */ diff --git a/src/mame/drivers/kaypro.cpp b/src/mame/drivers/kaypro.cpp index 62e3b1eae87..6e5b2e3d510 100644 --- a/src/mame/drivers/kaypro.cpp +++ b/src/mame/drivers/kaypro.cpp @@ -42,6 +42,7 @@ **************************************************************************************************/ #include "includes/kaypro.h" +#include "machine/kay_kbd.h" #include "formats/kaypro_dsk.h" #include "softlist.h" diff --git a/src/mame/drivers/ladybug.cpp b/src/mame/drivers/ladybug.cpp index a6ebabbf911..d5f22026828 100644 --- a/src/mame/drivers/ladybug.cpp +++ b/src/mame/drivers/ladybug.cpp @@ -66,65 +66,6 @@ TODO: #include "includes/ladybug.h" -/* Sound comm between CPU's */ -READ8_MEMBER(ladybug_state::sraider_sound_low_r) -{ - return m_sound_low; -} - -READ8_MEMBER(ladybug_state::sraider_sound_high_r) -{ - return m_sound_high; -} - -WRITE8_MEMBER(ladybug_state::sraider_sound_low_w) -{ - m_sound_low = data; -} - -WRITE8_MEMBER(ladybug_state::sraider_sound_high_w) -{ - m_sound_high = data; -} - -/* Protection? */ -READ8_MEMBER(ladybug_state::sraider_8005_r) -{ - /* This must return X011111X or cpu #1 will hang */ - /* see code at rst $10 */ - return 0x3e; -} - -/* Unknown IO */ -WRITE8_MEMBER(ladybug_state::sraider_misc_w) -{ - switch(offset) - { - /* These 8 bits are stored in the latch at A7 */ - case 0x00: - case 0x01: - case 0x02: - case 0x03: - case 0x04: - case 0x05: - case 0x06: - case 0x07: - m_weird_value[offset & 7] = data & 1; - break; - /* These 6 bits are stored in the latch at N7 */ - case 0x08: - m_sraider_0x30 = data&0x3f; - break; - /* These 6 bits are stored in the latch at N8 */ - case 0x10: - m_sraider_0x38 = data&0x3f; - break; - default: - osd_printf_debug("(%04X) write to %02X\n", space.device().safe_pc(), offset); - break; - } -} - static ADDRESS_MAP_START( ladybug_map, AS_PROGRAM, 8, ladybug_state ) AM_RANGE(0x0000, 0x5fff) AM_ROM AM_RANGE(0x6000, 0x6fff) AM_RAM @@ -146,47 +87,6 @@ static ADDRESS_MAP_START( decrypted_opcodes_map, AS_DECRYPTED_OPCODES, 8, ladybu AM_RANGE(0x0000, 0x5fff) AM_ROM AM_SHARE("decrypted_opcodes") ADDRESS_MAP_END - -static ADDRESS_MAP_START( sraider_cpu1_map, AS_PROGRAM, 8, ladybug_state ) - AM_RANGE(0x0000, 0x5fff) AM_ROM - AM_RANGE(0x6000, 0x6fff) AM_RAM - AM_RANGE(0x7000, 0x73ff) AM_WRITEONLY AM_SHARE("spriteram") - AM_RANGE(0x8005, 0x8005) AM_READ(sraider_8005_r) // protection check? - AM_RANGE(0x8006, 0x8006) AM_WRITE(sraider_sound_low_w) - AM_RANGE(0x8007, 0x8007) AM_WRITE(sraider_sound_high_w) - AM_RANGE(0x9000, 0x9000) AM_READ_PORT("IN0") - AM_RANGE(0x9001, 0x9001) AM_READ_PORT("IN1") - AM_RANGE(0x9002, 0x9002) AM_READ_PORT("DSW0") - AM_RANGE(0x9003, 0x9003) AM_READ_PORT("DSW1") - AM_RANGE(0xd000, 0xd3ff) AM_WRITE(ladybug_videoram_w) AM_SHARE("videoram") - AM_RANGE(0xd400, 0xd7ff) AM_WRITE(ladybug_colorram_w) AM_SHARE("colorram") - AM_RANGE(0xe000, 0xe000) AM_WRITENOP //unknown 0x10 when in attract, 0x20 when coined/playing -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( sraider_cpu2_map, AS_PROGRAM, 8, ladybug_state ) - AM_RANGE(0x0000, 0x5fff) AM_ROM - AM_RANGE(0x6000, 0x63ff) AM_RAM - AM_RANGE(0x8000, 0x8000) AM_READ(sraider_sound_low_r) - AM_RANGE(0xa000, 0xa000) AM_READ(sraider_sound_high_r) - AM_RANGE(0xc000, 0xc000) AM_READNOP //some kind of sync - AM_RANGE(0xe000, 0xe0ff) AM_WRITEONLY AM_SHARE("grid_data") - AM_RANGE(0xe800, 0xe800) AM_WRITE(sraider_io_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( sraider_cpu2_io_map, AS_IO, 8, ladybug_state ) - ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x00) AM_DEVWRITE("sn1", sn76489_device, write) - AM_RANGE(0x08, 0x08) AM_DEVWRITE("sn2", sn76489_device, write) - AM_RANGE(0x10, 0x10) AM_DEVWRITE("sn3", sn76489_device, write) - AM_RANGE(0x18, 0x18) AM_DEVWRITE("sn4", sn76489_device, write) - AM_RANGE(0x20, 0x20) AM_DEVWRITE("sn5", sn76489_device, write) - AM_RANGE(0x28, 0x3f) AM_WRITE(sraider_misc_w) // lots unknown -ADDRESS_MAP_END - - - INPUT_CHANGED_MEMBER(ladybug_state::coin1_inserted) { /* left coin insertion causes an NMI */ @@ -567,81 +467,6 @@ static INPUT_PORTS_START( dorodon ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, ladybug_state,coin2_inserted, 0) INPUT_PORTS_END -static INPUT_PORTS_START( sraider ) - PORT_START("IN0") /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START("IN1") /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) - - PORT_START("DSW0") /* DSW0 */ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x04, 0x04, "High Score Names" ) - PORT_DIPSETTING( 0x00, "3 Letters" ) - PORT_DIPSETTING( 0x04, "10 Letters" ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x08, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0xc0, "3" ) - PORT_DIPSETTING( 0x80, "4" ) - PORT_DIPSETTING( 0x40, "5" ) - - /* Free Play setting works when it's set for both */ - PORT_START("DSW1") /* DSW1 */ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) - /* settings 0x00 through 0x05 all give 1 Coin/1 Credit */ - PORT_DIPSETTING( 0x06, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 2C_2C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - /* settings 0x00 through 0x50 all give 1 Coin/1 Credit */ - PORT_DIPSETTING( 0x60, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 2C_2C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) -INPUT_PORTS_END - static const gfx_layout charlayout = { 8,8, /* 8*8 characters */ @@ -675,87 +500,16 @@ static const gfx_layout spritelayout2 = 16*8 /* every sprite takes 16 consecutive bytes */ }; -static const gfx_layout gridlayout = -{ - 8,8, /* 8*8 characters */ - 512, /* 512 characters */ - 1, /* 1 bit per pixel */ - { 0 }, - { 7, 6, 5, 4, 3, 2, 1, 0 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8}, - 8*8 /* every char takes 8 consecutive bytes */ -}; - -static const gfx_layout gridlayout2 = -{ - 8,8, /* 8*8 characters */ - 512, /* 512 characters */ - 1, /* 1 bit per pixel */ - { 0 }, - { 7, 6, 5, 4, 3, 2, 1, 0 }, - { 7*8, 6*8, 5*8, 4*8, 3*8, 2*8, 1*8, 0*8 }, - 8*8 /* every char takes 8 consecutive bytes */ -}; - static GFXDECODE_START( ladybug ) GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 8 ) GFXDECODE_ENTRY( "gfx2", 0, spritelayout, 4*8, 16 ) GFXDECODE_ENTRY( "gfx2", 0, spritelayout2, 4*8, 16 ) GFXDECODE_END -static GFXDECODE_START( sraider ) - GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 8 ) - GFXDECODE_ENTRY( "gfx2", 0, spritelayout, 4*8, 16 ) - GFXDECODE_ENTRY( "gfx2", 0, spritelayout2, 4*8, 16 ) - GFXDECODE_ENTRY( "gfx3", 0, gridlayout, 4*8+4*16+32, 1 ) - GFXDECODE_ENTRY( "gfx3", 0, gridlayout2, 4*8+4*16+32, 1 ) -GFXDECODE_END - - MACHINE_START_MEMBER(ladybug_state,ladybug) { } -MACHINE_START_MEMBER(ladybug_state,sraider) -{ - save_item(NAME(m_grid_color)); - save_item(NAME(m_sound_low)); - save_item(NAME(m_sound_high)); - save_item(NAME(m_sraider_0x30)); - save_item(NAME(m_sraider_0x38)); - save_item(NAME(m_weird_value)); - - /* for stars */ - save_item(NAME(m_star_speed)); - save_item(NAME(m_stars_enable)); - save_item(NAME(m_stars_speed)); - save_item(NAME(m_stars_state)); - save_item(NAME(m_stars_offset)); - save_item(NAME(m_stars_count)); -} - -MACHINE_RESET_MEMBER(ladybug_state,sraider) -{ - int i; - - m_grid_color = 0; - m_sound_low = 0; - m_sound_high = 0; - m_sraider_0x30 = 0; - m_sraider_0x38 = 0; - - /* for stars */ - m_star_speed = 0; - m_stars_enable = 0; - m_stars_speed = 0; - m_stars_state = 0; - m_stars_offset = 0; - m_stars_count = 0; - - for (i = 0; i < 8; i++) - m_weird_value[i] = 0; -} - static MACHINE_CONFIG_START( ladybug, ladybug_state ) /* basic machine hardware */ @@ -795,57 +549,6 @@ static MACHINE_CONFIG_DERIVED( dorodon, ladybug ) MCFG_CPU_DECRYPTED_OPCODES_MAP(decrypted_opcodes_map) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sraider, ladybug_state ) - - /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", Z80, 4000000) /* 4 MHz */ - MCFG_CPU_PROGRAM_MAP(sraider_cpu1_map) - MCFG_CPU_VBLANK_INT_DRIVER("screen", ladybug_state, irq0_line_hold) - - MCFG_CPU_ADD("sub", Z80, 4000000) /* 4 MHz */ - MCFG_CPU_PROGRAM_MAP(sraider_cpu2_map) - MCFG_CPU_IO_MAP(sraider_cpu2_io_map) - MCFG_CPU_VBLANK_INT_DRIVER("screen", ladybug_state, irq0_line_hold) - - MCFG_MACHINE_START_OVERRIDE(ladybug_state,sraider) - MCFG_MACHINE_RESET_OVERRIDE(ladybug_state,sraider) - - /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 28*8-1) - MCFG_SCREEN_UPDATE_DRIVER(ladybug_state, screen_update_sraider) - MCFG_SCREEN_VBLANK_DRIVER(ladybug_state, screen_eof_sraider) - MCFG_SCREEN_PALETTE("palette") - - MCFG_GFXDECODE_ADD("gfxdecode", "palette", sraider) - MCFG_PALETTE_ADD("palette", 4*8+4*16+32+2) - MCFG_PALETTE_INDIRECT_ENTRIES(32+32+1) - MCFG_PALETTE_INIT_OWNER(ladybug_state,sraider) - - MCFG_VIDEO_START_OVERRIDE(ladybug_state,sraider) - - /* sound hardware */ - MCFG_SPEAKER_STANDARD_MONO("mono") - - MCFG_SOUND_ADD("sn1", SN76489, 4000000) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MCFG_SOUND_ADD("sn2", SN76489, 4000000) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MCFG_SOUND_ADD("sn3", SN76489, 4000000) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MCFG_SOUND_ADD("sn4", SN76489, 4000000) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MCFG_SOUND_ADD("sn5", SN76489, 4000000) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END - /*************************************************************************** @@ -1017,35 +720,6 @@ ROM_START( dorodon2 ) ROM_LOAD( "dorodon.bp2", 0x0040, 0x0020, CRC(27fa3a50) SHA1(7cf59b7a37c156640d6ea91554d1c4276c1780e0) ) /* timing?? */ ROM_END -ROM_START( sraider ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "sraid3.r4", 0x0000, 0x2000, CRC(0f389774) SHA1(c67596e6bf00175ff0a241506cd2f88114d05933) ) - ROM_LOAD( "sraid2.n4", 0x2000, 0x2000, CRC(38a48db0) SHA1(6f4f384d702fb8ee4bb2ef579638239d57e32ddd) ) - ROM_LOAD( "sraid1.m4", 0x4000, 0x2000, CRC(2f302a4e) SHA1(3a902ce6858f38df88b60830bef4b1d45b09b2df) ) - - ROM_REGION( 0x10000, "sub", 0 ) - ROM_LOAD( "sraid-s4.h6", 0x0000, 0x2000, CRC(57173a12) SHA1(6cb8fd4826e499f9a4e63621d58bc4b596cc261e) ) - ROM_LOAD( "sraid-s5.j6", 0x2000, 0x2000, CRC(5a459179) SHA1(a261c8f3c7c4cd4587c003bbbe815d2c4e01ffbc) ) - ROM_LOAD( "sraid-s6.l6", 0x4000, 0x2000, CRC(ea3aa25d) SHA1(353c0d075d5e0a3bc25a65e2748f5eb5212a844d) ) - - ROM_REGION( 0x2000, "gfx1", 0 ) - ROM_LOAD( "sraid-s0.k6", 0x0000, 0x1000, CRC(a0373909) SHA1(00e3bd5dd90769d670fc3c51edd1cd4b69e6132d) ) - ROM_LOAD( "sraids11.l6", 0x1000, 0x1000, CRC(ba22d949) SHA1(83762ced1df92ff594887e44d5b783826bbfb0c9) ) - - ROM_REGION( 0x2000, "gfx2", 0 ) - ROM_LOAD( "sraid-s7.m2", 0x0000, 0x1000, CRC(299f8e07) SHA1(1de71f251286088487da7285d6f8070147002af5) ) - ROM_LOAD( "sraid-s8.n2", 0x1000, 0x1000, CRC(57ba8888) SHA1(2aa1a5f682d146a55a96e471bb78e5c60da02bf9) ) - - ROM_REGION( 0x1000, "gfx3", 0 ) /* fixed portion of the grid */ - ROM_LOAD( "sraid-s9.f6", 0x0000, 0x1000, CRC(2380b90f) SHA1(0310554e3f2ec973c2bb6e816d04e5c0c1e0a0b9) ) - - ROM_REGION( 0x0060, "proms", 0 ) - ROM_LOAD( "srpr10-1.a2", 0x0000, 0x0020, CRC(121fdb99) SHA1(3bc092da40beb129a4df3db2f55d22bbbcf7bad8) ) - ROM_LOAD( "srpr10-2.l3", 0x0020, 0x0020, CRC(88b67e70) SHA1(e21ee2939e96dffee101bd92c62ed975b6b64001) ) - ROM_LOAD( "srpr10-3.c1", 0x0040, 0x0020, CRC(27fa3a50) SHA1(7cf59b7a37c156640d6ea91554d1c4276c1780e0) ) /* ?? */ -ROM_END - - DRIVER_INIT_MEMBER(ladybug_state,dorodon) { /* decode the opcodes */ @@ -1066,4 +740,3 @@ GAME( 1981, ladybgb2, ladybug, ladybug, ladybug, driver_device, 0, ROT270 GAME( 1982, dorodon, 0, dorodon, dorodon, ladybug_state, dorodon, ROT270, "UPL (Falcon license?)", "Dorodon (set 1)", MACHINE_SUPPORTS_SAVE ) // license or bootleg? GAME( 1982, dorodon2, dorodon, dorodon, dorodon, ladybug_state, dorodon, ROT270, "UPL (Falcon license?)", "Dorodon (set 2)", MACHINE_SUPPORTS_SAVE ) // " GAME( 1982, snapjack, 0, ladybug, snapjack, driver_device, 0, ROT0, "Universal", "Snap Jack", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, sraider, 0, sraider, sraider, driver_device, 0, ROT270, "Universal", "Space Raider", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/mac.cpp b/src/mame/drivers/mac.cpp index d3cec088a75..18c28e059a4 100644 --- a/src/mame/drivers/mac.cpp +++ b/src/mame/drivers/mac.cpp @@ -84,6 +84,7 @@ #include "bus/macpds/pds_tpdfpd.h" #include "includes/mac.h" +#include "machine/macadb.h" #include "softlist.h" #include "mac.lh" diff --git a/src/mame/drivers/megadrvb.cpp b/src/mame/drivers/megadrvb.cpp index c794ec9ff35..b2ed760453a 100644 --- a/src/mame/drivers/megadrvb.cpp +++ b/src/mame/drivers/megadrvb.cpp @@ -258,8 +258,38 @@ connector, but of course, I can be wrong. #include "emu.h" #include "includes/megadriv.h" +#include "includes/megadrvb.h" +/************************************ Megadrive Bootlegs *************************************/ + +// smaller ROM region because some bootlegs check for RAM there (used by topshoot and hshavoc) +static ADDRESS_MAP_START( md_bootleg_map, AS_PROGRAM, 16, md_boot_state ) + AM_RANGE(0x000000, 0x0fffff) AM_ROM /* Cartridge Program Rom */ + AM_RANGE(0x200000, 0x2023ff) AM_RAM // tested + + AM_RANGE(0xa00000, 0xa01fff) AM_READWRITE(megadriv_68k_read_z80_ram, megadriv_68k_write_z80_ram) + AM_RANGE(0xa02000, 0xa03fff) AM_WRITE(megadriv_68k_write_z80_ram) + AM_RANGE(0xa04000, 0xa04003) AM_READWRITE8(megadriv_68k_YM2612_read, megadriv_68k_YM2612_write, 0xffff) + AM_RANGE(0xa06000, 0xa06001) AM_WRITE(megadriv_68k_z80_bank_write) + + AM_RANGE(0xa10000, 0xa1001f) AM_READWRITE(megadriv_68k_io_read, megadriv_68k_io_write) + AM_RANGE(0xa11100, 0xa11101) AM_READWRITE(megadriv_68k_check_z80_bus, megadriv_68k_req_z80_bus) + AM_RANGE(0xa11200, 0xa11201) AM_WRITE(megadriv_68k_req_z80_reset) + + AM_RANGE(0xc00000, 0xc0001f) AM_DEVREADWRITE("gen_vdp", sega315_5313_device, vdp_r, vdp_w) + AM_RANGE(0xd00000, 0xd0001f) AM_DEVREADWRITE("gen_vdp", sega315_5313_device, vdp_r, vdp_w) + + AM_RANGE(0xe00000, 0xe0ffff) AM_RAM AM_MIRROR(0x1f0000) AM_SHARE("megadrive_ram") +ADDRESS_MAP_END + +MACHINE_CONFIG_START( md_bootleg, md_boot_state ) + MCFG_FRAGMENT_ADD( md_ntsc ) + + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(md_bootleg_map) +MACHINE_CONFIG_END + /************************************* * * Games memory handlers diff --git a/src/mame/drivers/midzeus.cpp b/src/mame/drivers/midzeus.cpp index 039e414411d..816dc219648 100644 --- a/src/mame/drivers/midzeus.cpp +++ b/src/mame/drivers/midzeus.cpp @@ -31,6 +31,7 @@ The Grid v1.2 10/18/2000 #include "cpu/adsp2100/adsp2100.h" #include "cpu/pic16c5x/pic16c5x.h" #include "includes/midzeus.h" +#include "includes/midzeus2.h" #include "machine/midwayic.h" #include "audio/dcs.h" #include "machine/nvram.h" diff --git a/src/mame/drivers/ninjaw.cpp b/src/mame/drivers/ninjaw.cpp index 098e920dfcc..2172ec59909 100644 --- a/src/mame/drivers/ninjaw.cpp +++ b/src/mame/drivers/ninjaw.cpp @@ -322,7 +322,7 @@ rumbling on a subwoofer in the cabinet.) #include "includes/taitoipt.h" #include "includes/ninjaw.h" -extern const internal_layout layout_darius; +#include "ninjaw.lh" void ninjaw_state::parse_control( ) /* assumes Z80 sandwiched between 68Ks */ { @@ -749,7 +749,7 @@ static MACHINE_CONFIG_START( ninjaw, ninjaw_state ) MCFG_PALETTE_ADD("palette2", 4096) MCFG_PALETTE_ADD("palette3", 4096) - MCFG_DEFAULT_LAYOUT(layout_darius) + MCFG_DEFAULT_LAYOUT(layout_ninjaw) MCFG_SCREEN_ADD("lscreen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) @@ -869,7 +869,7 @@ static MACHINE_CONFIG_START( darius2, ninjaw_state ) MCFG_PALETTE_ADD("palette2", 4096) MCFG_PALETTE_ADD("palette3", 4096) - MCFG_DEFAULT_LAYOUT(layout_darius) + MCFG_DEFAULT_LAYOUT(layout_ninjaw) MCFG_SCREEN_ADD("lscreen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) diff --git a/src/mame/drivers/pacman.cpp b/src/mame/drivers/pacman.cpp index ddf0a4f1753..128d858a5cb 100644 --- a/src/mame/drivers/pacman.cpp +++ b/src/mame/drivers/pacman.cpp @@ -345,6 +345,10 @@ Boards: #include "machine/watchdog.h" #include "sound/ay8910.h" #include "sound/sn76496.h" +#include "machine/acitya.h" +#include "machine/jumpshot.h" +#include "machine/pacplus.h" +#include "machine/theglobp.h" /************************************* diff --git a/src/mame/drivers/pentagon.cpp b/src/mame/drivers/pentagon.cpp index ea2150c2fed..7b3a5e4bd9c 100644 --- a/src/mame/drivers/pentagon.cpp +++ b/src/mame/drivers/pentagon.cpp @@ -2,6 +2,7 @@ // copyright-holders:Miodrag Milanovic, MetalliC #include "emu.h" #include "includes/spectrum.h" +#include "includes/spec128.h" #include "imagedev/snapquik.h" #include "imagedev/cassette.h" #include "sound/ay8910.h" @@ -10,6 +11,7 @@ #include "machine/beta.h" #include "machine/ram.h" #include "softlist.h" +#include "machine/spec_snqk.h" class pentagon_state : public spectrum_state { diff --git a/src/mame/drivers/pong.cpp b/src/mame/drivers/pong.cpp index 358b7cb35ea..d454b462766 100644 --- a/src/mame/drivers/pong.cpp +++ b/src/mame/drivers/pong.cpp @@ -50,6 +50,9 @@ TODO: Superpong is believed to use the Pong (Rev E) PCB with some minor modifica #include "netlist/devices/net_lib.h" #include "sound/dac.h" #include "video/fixfreq.h" +#include "machine/nl_breakout.h" +#include "machine/nl_pong.h" +#include "machine/nl_pongd.h" #include "breakout.lh" @@ -118,10 +121,6 @@ enum input_changed_enum IC_VR2 }; -NETLIST_EXTERNAL(pongdoubles) -NETLIST_EXTERNAL(pong_fast) -NETLIST_EXTERNAL(breakout) - class ttl_mono_state : public driver_device { public: diff --git a/src/mame/drivers/puckpkmn.cpp b/src/mame/drivers/puckpkmn.cpp index e68e01cb1fd..4206a023a85 100644 --- a/src/mame/drivers/puckpkmn.cpp +++ b/src/mame/drivers/puckpkmn.cpp @@ -51,7 +51,7 @@ Notes: #include "sound/2612intf.h" #include "includes/megadriv.h" - +#include "includes/megadrvb.h" /* Puckman Pockimon Input Ports */ static INPUT_PORTS_START( puckpkmn ) diff --git a/src/mame/drivers/redclash.cpp b/src/mame/drivers/redclash.cpp index f2d64bccf56..ee8eebe9197 100644 --- a/src/mame/drivers/redclash.cpp +++ b/src/mame/drivers/redclash.cpp @@ -24,15 +24,114 @@ TODO: #include "emu.h" #include "cpu/z80/z80.h" -#include "includes/ladybug.h" +#include "sound/sn76496.h" +#include "includes/redclash.h" -WRITE8_MEMBER( ladybug_state::irqack_w ) +/* Sound comm between CPU's */ +READ8_MEMBER(redclash_state::sraider_sound_low_r) +{ + return m_sound_low; +} + +READ8_MEMBER(redclash_state::sraider_sound_high_r) +{ + return m_sound_high; +} + +WRITE8_MEMBER(redclash_state::sraider_sound_low_w) +{ + m_sound_low = data; +} + +WRITE8_MEMBER(redclash_state::sraider_sound_high_w) +{ + m_sound_high = data; +} + +/* Protection? */ +READ8_MEMBER(redclash_state::sraider_8005_r) +{ + /* This must return X011111X or cpu #1 will hang */ + /* see code at rst $10 */ + return 0x3e; +} + +/* Unknown IO */ +WRITE8_MEMBER(redclash_state::sraider_misc_w) +{ + switch(offset) + { + /* These 8 bits are stored in the latch at A7 */ + case 0x00: + case 0x01: + case 0x02: + case 0x03: + case 0x04: + case 0x05: + case 0x06: + case 0x07: + m_weird_value[offset & 7] = data & 1; + break; + /* These 6 bits are stored in the latch at N7 */ + case 0x08: + m_sraider_0x30 = data&0x3f; + break; + /* These 6 bits are stored in the latch at N8 */ + case 0x10: + m_sraider_0x38 = data&0x3f; + break; + default: + osd_printf_debug("(%04X) write to %02X\n", space.device().safe_pc(), offset); + break; + } +} + +static ADDRESS_MAP_START( sraider_cpu1_map, AS_PROGRAM, 8, redclash_state ) + AM_RANGE(0x0000, 0x5fff) AM_ROM + AM_RANGE(0x6000, 0x6fff) AM_RAM + AM_RANGE(0x7000, 0x73ff) AM_WRITEONLY AM_SHARE("spriteram") + AM_RANGE(0x8005, 0x8005) AM_READ(sraider_8005_r) // protection check? + AM_RANGE(0x8006, 0x8006) AM_WRITE(sraider_sound_low_w) + AM_RANGE(0x8007, 0x8007) AM_WRITE(sraider_sound_high_w) + AM_RANGE(0x9000, 0x9000) AM_READ_PORT("IN0") + AM_RANGE(0x9001, 0x9001) AM_READ_PORT("IN1") + AM_RANGE(0x9002, 0x9002) AM_READ_PORT("DSW0") + AM_RANGE(0x9003, 0x9003) AM_READ_PORT("DSW1") + AM_RANGE(0xd000, 0xd3ff) AM_WRITE(ladybug_videoram_w) AM_SHARE("videoram") + AM_RANGE(0xd400, 0xd7ff) AM_WRITE(ladybug_colorram_w) AM_SHARE("colorram") + AM_RANGE(0xe000, 0xe000) AM_WRITENOP //unknown 0x10 when in attract, 0x20 when coined/playing +ADDRESS_MAP_END + + +static ADDRESS_MAP_START( sraider_cpu2_map, AS_PROGRAM, 8, redclash_state ) + AM_RANGE(0x0000, 0x5fff) AM_ROM + AM_RANGE(0x6000, 0x63ff) AM_RAM + AM_RANGE(0x8000, 0x8000) AM_READ(sraider_sound_low_r) + AM_RANGE(0xa000, 0xa000) AM_READ(sraider_sound_high_r) + AM_RANGE(0xc000, 0xc000) AM_READNOP //some kind of sync + AM_RANGE(0xe000, 0xe0ff) AM_WRITEONLY AM_SHARE("grid_data") + AM_RANGE(0xe800, 0xe800) AM_WRITE(sraider_io_w) +ADDRESS_MAP_END + + +static ADDRESS_MAP_START( sraider_cpu2_io_map, AS_IO, 8, redclash_state ) + ADDRESS_MAP_GLOBAL_MASK(0xff) + AM_RANGE(0x00, 0x00) AM_DEVWRITE("sn1", sn76489_device, write) + AM_RANGE(0x08, 0x08) AM_DEVWRITE("sn2", sn76489_device, write) + AM_RANGE(0x10, 0x10) AM_DEVWRITE("sn3", sn76489_device, write) + AM_RANGE(0x18, 0x18) AM_DEVWRITE("sn4", sn76489_device, write) + AM_RANGE(0x20, 0x20) AM_DEVWRITE("sn5", sn76489_device, write) + AM_RANGE(0x28, 0x3f) AM_WRITE(sraider_misc_w) // lots unknown +ADDRESS_MAP_END + + +WRITE8_MEMBER( redclash_state::irqack_w ) { m_maincpu->set_input_line(0, CLEAR_LINE); } -static ADDRESS_MAP_START( zerohour_map, AS_PROGRAM, 8, ladybug_state ) +static ADDRESS_MAP_START( zerohour_map, AS_PROGRAM, 8, redclash_state ) AM_RANGE(0x0000, 0x2fff) AM_ROM AM_RANGE(0x3000, 0x37ff) AM_RAM AM_RANGE(0x3800, 0x3bff) AM_RAM AM_SHARE("spriteram") @@ -51,7 +150,7 @@ static ADDRESS_MAP_START( zerohour_map, AS_PROGRAM, 8, ladybug_state ) AM_RANGE(0x7800, 0x7800) AM_WRITE(irqack_w) ADDRESS_MAP_END -static ADDRESS_MAP_START( redclash_map, AS_PROGRAM, 8, ladybug_state ) +static ADDRESS_MAP_START( redclash_map, AS_PROGRAM, 8, redclash_state ) AM_RANGE(0x0000, 0x2fff) AM_ROM // AM_RANGE(0x3000, 0x3000) AM_WRITENOP // AM_RANGE(0x3800, 0x3800) AM_WRITENOP @@ -77,13 +176,13 @@ ADDRESS_MAP_END Interrupts are still used, but they are related to coin slots. Left slot generates an IRQ, Right slot a NMI. */ -INPUT_CHANGED_MEMBER( ladybug_state::left_coin_inserted ) +INPUT_CHANGED_MEMBER( redclash_state::left_coin_inserted ) { if(newval) m_maincpu->set_input_line(0, ASSERT_LINE); } -INPUT_CHANGED_MEMBER( ladybug_state::right_coin_inserted ) +INPUT_CHANGED_MEMBER( redclash_state::right_coin_inserted ) { if(newval) m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); @@ -179,8 +278,8 @@ static INPUT_PORTS_START( redclash ) /* handler to be notified of coin insertions. We use IMPULSE to */ /* trigger exactly one interrupt, without having to check when the */ /* user releases the key. */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, ladybug_state, left_coin_inserted, 0) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, ladybug_state, right_coin_inserted, 0) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, redclash_state, left_coin_inserted, 0) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, redclash_state, right_coin_inserted, 0) INPUT_PORTS_END static INPUT_PORTS_START( zerohour ) @@ -255,8 +354,83 @@ static INPUT_PORTS_START( zerohour ) /* handler to be notified of coin insertions. We use IMPULSE to */ /* trigger exactly one interrupt, without having to check when the */ /* user releases the key. */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, ladybug_state, left_coin_inserted, 0) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, ladybug_state, right_coin_inserted, 0) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, redclash_state, left_coin_inserted, 0) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, redclash_state, right_coin_inserted, 0) +INPUT_PORTS_END + +static INPUT_PORTS_START( sraider ) + PORT_START("IN0") /* IN0 */ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("IN1") /* IN1 */ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) + + PORT_START("DSW0") /* DSW0 */ + PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) + PORT_DIPSETTING( 0x03, DEF_STR( Easy ) ) + PORT_DIPSETTING( 0x02, DEF_STR( Medium ) ) + PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) + PORT_DIPNAME( 0x04, 0x04, "High Score Names" ) + PORT_DIPSETTING( 0x00, "3 Letters" ) + PORT_DIPSETTING( 0x04, "10 Letters" ) + PORT_DIPNAME( 0x08, 0x08, DEF_STR( Allow_Continue ) ) + PORT_DIPSETTING( 0x08, DEF_STR( No ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Cabinet ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) + PORT_DIPSETTING( 0x20, DEF_STR( Cocktail ) ) + PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) + PORT_DIPSETTING( 0x00, "2" ) + PORT_DIPSETTING( 0xc0, "3" ) + PORT_DIPSETTING( 0x80, "4" ) + PORT_DIPSETTING( 0x40, "5" ) + + /* Free Play setting works when it's set for both */ + PORT_START("DSW1") /* DSW1 */ + PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) + /* settings 0x00 through 0x05 all give 1 Coin/1 Credit */ + PORT_DIPSETTING( 0x06, DEF_STR( 4C_1C ) ) + PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) + PORT_DIPSETTING( 0x0a, DEF_STR( 2C_1C ) ) + PORT_DIPSETTING( 0x07, DEF_STR( 3C_2C ) ) + PORT_DIPSETTING( 0x09, DEF_STR( 2C_2C ) ) + PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) + PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) + PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) + PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) + /* settings 0x00 through 0x50 all give 1 Coin/1 Credit */ + PORT_DIPSETTING( 0x60, DEF_STR( 4C_1C ) ) + PORT_DIPSETTING( 0x80, DEF_STR( 3C_1C ) ) + PORT_DIPSETTING( 0xa0, DEF_STR( 2C_1C ) ) + PORT_DIPSETTING( 0x70, DEF_STR( 3C_2C ) ) + PORT_DIPSETTING( 0x90, DEF_STR( 2C_2C ) ) + PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) + PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) + PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) INPUT_PORTS_END static const gfx_layout charlayout = @@ -323,9 +497,111 @@ static GFXDECODE_START( redclash ) GFXDECODE_ENTRY( "gfx2", 0x0004, spritelayout16x16bis, 4*8, 16 ) GFXDECODE_END +static const gfx_layout charlayout2 = +{ + 8,8, /* 8*8 characters */ + 512, /* 512 characters */ + 2, /* 2 bits per pixel */ + { 0, 512*8*8 }, /* the two bitplanes are separated */ + { 7, 6, 5, 4, 3, 2, 1, 0 }, + { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, + 8*8 /* every char takes 8 consecutive bytes */ +}; +static const gfx_layout spritelayout = +{ + 16,16, /* 16*16 sprites */ + 128, /* 128 sprites */ + 2, /* 2 bits per pixel */ + { 1, 0 }, /* the two bitplanes are packed in two consecutive bits */ + { 0, 2, 4, 6, 8, 10, 12, 14, + 8*16+0, 8*16+2, 8*16+4, 8*16+6, 8*16+8, 8*16+10, 8*16+12, 8*16+14 }, + { 23*16, 22*16, 21*16, 20*16, 19*16, 18*16, 17*16, 16*16, + 7*16, 6*16, 5*16, 4*16, 3*16, 2*16, 1*16, 0*16 }, + 64*8 /* every sprite takes 64 consecutive bytes */ +}; +static const gfx_layout spritelayout2 = +{ + 8,8, /* 8*8 sprites */ + 512, /* 512 sprites */ + 2, /* 2 bits per pixel */ + { 1, 0 }, /* the two bitplanes are packed in two consecutive bits */ + { 0, 2, 4, 6, 8, 10, 12, 14 }, + { 7*16, 6*16, 5*16, 4*16, 3*16, 2*16, 1*16, 0*16 }, + 16*8 /* every sprite takes 16 consecutive bytes */ +}; + +static const gfx_layout gridlayout = +{ + 8,8, /* 8*8 characters */ + 512, /* 512 characters */ + 1, /* 1 bit per pixel */ + { 0 }, + { 7, 6, 5, 4, 3, 2, 1, 0 }, + { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8}, + 8*8 /* every char takes 8 consecutive bytes */ +}; + +static const gfx_layout gridlayout2 = +{ + 8,8, /* 8*8 characters */ + 512, /* 512 characters */ + 1, /* 1 bit per pixel */ + { 0 }, + { 7, 6, 5, 4, 3, 2, 1, 0 }, + { 7*8, 6*8, 5*8, 4*8, 3*8, 2*8, 1*8, 0*8 }, + 8*8 /* every char takes 8 consecutive bytes */ +}; + +static GFXDECODE_START( sraider ) + GFXDECODE_ENTRY( "gfx1", 0, charlayout2, 0, 8 ) + GFXDECODE_ENTRY( "gfx2", 0, spritelayout, 4*8, 16 ) + GFXDECODE_ENTRY( "gfx2", 0, spritelayout2, 4*8, 16 ) + GFXDECODE_ENTRY( "gfx3", 0, gridlayout, 4*8+4*16+32, 1 ) + GFXDECODE_ENTRY( "gfx3", 0, gridlayout2, 4*8+4*16+32, 1 ) +GFXDECODE_END + +MACHINE_START_MEMBER(redclash_state,sraider) +{ + save_item(NAME(m_grid_color)); + save_item(NAME(m_sound_low)); + save_item(NAME(m_sound_high)); + save_item(NAME(m_sraider_0x30)); + save_item(NAME(m_sraider_0x38)); + save_item(NAME(m_weird_value)); + + /* for stars */ + save_item(NAME(m_star_speed)); + save_item(NAME(m_stars_enable)); + save_item(NAME(m_stars_speed)); + save_item(NAME(m_stars_state)); + save_item(NAME(m_stars_offset)); + save_item(NAME(m_stars_count)); +} + +MACHINE_RESET_MEMBER(redclash_state,sraider) +{ + int i; + + m_grid_color = 0; + m_sound_low = 0; + m_sound_high = 0; + m_sraider_0x30 = 0; + m_sraider_0x38 = 0; + + /* for stars */ + m_star_speed = 0; + m_stars_enable = 0; + m_stars_speed = 0; + m_stars_state = 0; + m_stars_offset = 0; + m_stars_count = 0; + + for (i = 0; i < 8; i++) + m_weird_value[i] = 0; +} -MACHINE_START_MEMBER(ladybug_state,redclash) +MACHINE_START_MEMBER(redclash_state,redclash) { save_item(NAME(m_star_speed)); save_item(NAME(m_gfxbank)); @@ -336,7 +612,7 @@ MACHINE_START_MEMBER(ladybug_state,redclash) save_item(NAME(m_stars_count)); } -MACHINE_RESET_MEMBER(ladybug_state,redclash) +MACHINE_RESET_MEMBER(redclash_state,redclash) { m_star_speed = 0; m_gfxbank = 0; @@ -347,14 +623,14 @@ MACHINE_RESET_MEMBER(ladybug_state,redclash) m_stars_count = 0; } -static MACHINE_CONFIG_START( zerohour, ladybug_state ) +static MACHINE_CONFIG_START( zerohour, redclash_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) /* 4 MHz */ MCFG_CPU_PROGRAM_MAP(zerohour_map) - MCFG_MACHINE_START_OVERRIDE(ladybug_state,redclash) - MCFG_MACHINE_RESET_OVERRIDE(ladybug_state,redclash) + MCFG_MACHINE_START_OVERRIDE(redclash_state,redclash) + MCFG_MACHINE_RESET_OVERRIDE(redclash_state,redclash) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -362,28 +638,28 @@ static MACHINE_CONFIG_START( zerohour, ladybug_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 28*8-1) - MCFG_SCREEN_UPDATE_DRIVER(ladybug_state, screen_update_redclash) - MCFG_SCREEN_VBLANK_DRIVER(ladybug_state, screen_eof_redclash) + MCFG_SCREEN_UPDATE_DRIVER(redclash_state, screen_update_redclash) + MCFG_SCREEN_VBLANK_DRIVER(redclash_state, screen_eof_redclash) MCFG_SCREEN_PALETTE("palette") MCFG_GFXDECODE_ADD("gfxdecode", "palette", redclash) MCFG_PALETTE_ADD("palette", 4*8+4*16+32) MCFG_PALETTE_INDIRECT_ENTRIES(32+32) - MCFG_PALETTE_INIT_OWNER(ladybug_state,redclash) - MCFG_VIDEO_START_OVERRIDE(ladybug_state,redclash) + MCFG_PALETTE_INIT_OWNER(redclash_state,redclash) + MCFG_VIDEO_START_OVERRIDE(redclash_state,redclash) /* sound hardware */ MACHINE_CONFIG_END -static MACHINE_CONFIG_START( redclash, ladybug_state ) +static MACHINE_CONFIG_START( redclash, redclash_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) /* 4 MHz */ MCFG_CPU_PROGRAM_MAP(redclash_map) - MCFG_MACHINE_START_OVERRIDE(ladybug_state,redclash) - MCFG_MACHINE_RESET_OVERRIDE(ladybug_state,redclash) + MCFG_MACHINE_START_OVERRIDE(redclash_state,redclash) + MCFG_MACHINE_RESET_OVERRIDE(redclash_state,redclash) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -391,19 +667,72 @@ static MACHINE_CONFIG_START( redclash, ladybug_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 28*8-1) - MCFG_SCREEN_UPDATE_DRIVER(ladybug_state, screen_update_redclash) - MCFG_SCREEN_VBLANK_DRIVER(ladybug_state, screen_eof_redclash) + MCFG_SCREEN_UPDATE_DRIVER(redclash_state, screen_update_redclash) + MCFG_SCREEN_VBLANK_DRIVER(redclash_state, screen_eof_redclash) MCFG_SCREEN_PALETTE("palette") MCFG_GFXDECODE_ADD("gfxdecode", "palette", redclash) MCFG_PALETTE_ADD("palette", 4*8+4*16+32) MCFG_PALETTE_INDIRECT_ENTRIES(32+32) - MCFG_PALETTE_INIT_OWNER(ladybug_state,redclash) - MCFG_VIDEO_START_OVERRIDE(ladybug_state,redclash) + MCFG_PALETTE_INIT_OWNER(redclash_state,redclash) + MCFG_VIDEO_START_OVERRIDE(redclash_state,redclash) /* sound hardware */ MACHINE_CONFIG_END +static MACHINE_CONFIG_START( sraider, redclash_state ) + + /* basic machine hardware */ + MCFG_CPU_ADD("maincpu", Z80, 4000000) /* 4 MHz */ + MCFG_CPU_PROGRAM_MAP(sraider_cpu1_map) + MCFG_CPU_VBLANK_INT_DRIVER("screen", redclash_state, irq0_line_hold) + + MCFG_CPU_ADD("sub", Z80, 4000000) /* 4 MHz */ + MCFG_CPU_PROGRAM_MAP(sraider_cpu2_map) + MCFG_CPU_IO_MAP(sraider_cpu2_io_map) + MCFG_CPU_VBLANK_INT_DRIVER("screen", redclash_state, irq0_line_hold) + + MCFG_MACHINE_START_OVERRIDE(redclash_state,sraider) + MCFG_MACHINE_RESET_OVERRIDE(redclash_state,sraider) + + /* video hardware */ + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_REFRESH_RATE(60) + MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) + MCFG_SCREEN_SIZE(32*8, 32*8) + MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 28*8-1) + MCFG_SCREEN_UPDATE_DRIVER(redclash_state, screen_update_sraider) + MCFG_SCREEN_VBLANK_DRIVER(redclash_state, screen_eof_sraider) + MCFG_SCREEN_PALETTE("palette") + + MCFG_GFXDECODE_ADD("gfxdecode", "palette", sraider) + MCFG_PALETTE_ADD("palette", 4*8+4*16+32+2) + MCFG_PALETTE_INDIRECT_ENTRIES(32+32+1) + MCFG_PALETTE_INIT_OWNER(redclash_state,sraider) + + MCFG_VIDEO_START_OVERRIDE(redclash_state,sraider) + + /* sound hardware */ + MCFG_SPEAKER_STANDARD_MONO("mono") + + MCFG_SOUND_ADD("sn1", SN76489, 4000000) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + + MCFG_SOUND_ADD("sn2", SN76489, 4000000) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + + MCFG_SOUND_ADD("sn3", SN76489, 4000000) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + + MCFG_SOUND_ADD("sn4", SN76489, 4000000) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + + MCFG_SOUND_ADD("sn5", SN76489, 4000000) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) +MACHINE_CONFIG_END + + + /*************************************************************************** Game driver(s) @@ -568,7 +897,36 @@ ROM_START( redclashk ) ROM_LOAD( "3.11e", 0x0040, 0x0020, CRC(27fa3a50) SHA1(7cf59b7a37c156640d6ea91554d1c4276c1780e0) ) /* 6331.6w */ ROM_END -DRIVER_INIT_MEMBER(ladybug_state,redclash) +ROM_START( sraider ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "sraid3.r4", 0x0000, 0x2000, CRC(0f389774) SHA1(c67596e6bf00175ff0a241506cd2f88114d05933) ) + ROM_LOAD( "sraid2.n4", 0x2000, 0x2000, CRC(38a48db0) SHA1(6f4f384d702fb8ee4bb2ef579638239d57e32ddd) ) + ROM_LOAD( "sraid1.m4", 0x4000, 0x2000, CRC(2f302a4e) SHA1(3a902ce6858f38df88b60830bef4b1d45b09b2df) ) + + ROM_REGION( 0x10000, "sub", 0 ) + ROM_LOAD( "sraid-s4.h6", 0x0000, 0x2000, CRC(57173a12) SHA1(6cb8fd4826e499f9a4e63621d58bc4b596cc261e) ) + ROM_LOAD( "sraid-s5.j6", 0x2000, 0x2000, CRC(5a459179) SHA1(a261c8f3c7c4cd4587c003bbbe815d2c4e01ffbc) ) + ROM_LOAD( "sraid-s6.l6", 0x4000, 0x2000, CRC(ea3aa25d) SHA1(353c0d075d5e0a3bc25a65e2748f5eb5212a844d) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "sraid-s0.k6", 0x0000, 0x1000, CRC(a0373909) SHA1(00e3bd5dd90769d670fc3c51edd1cd4b69e6132d) ) + ROM_LOAD( "sraids11.l6", 0x1000, 0x1000, CRC(ba22d949) SHA1(83762ced1df92ff594887e44d5b783826bbfb0c9) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "sraid-s7.m2", 0x0000, 0x1000, CRC(299f8e07) SHA1(1de71f251286088487da7285d6f8070147002af5) ) + ROM_LOAD( "sraid-s8.n2", 0x1000, 0x1000, CRC(57ba8888) SHA1(2aa1a5f682d146a55a96e471bb78e5c60da02bf9) ) + + ROM_REGION( 0x1000, "gfx3", 0 ) /* fixed portion of the grid */ + ROM_LOAD( "sraid-s9.f6", 0x0000, 0x1000, CRC(2380b90f) SHA1(0310554e3f2ec973c2bb6e816d04e5c0c1e0a0b9) ) + + ROM_REGION( 0x0060, "proms", 0 ) + ROM_LOAD( "srpr10-1.a2", 0x0000, 0x0020, CRC(121fdb99) SHA1(3bc092da40beb129a4df3db2f55d22bbbcf7bad8) ) + ROM_LOAD( "srpr10-2.l3", 0x0020, 0x0020, CRC(88b67e70) SHA1(e21ee2939e96dffee101bd92c62ed975b6b64001) ) + ROM_LOAD( "srpr10-3.c1", 0x0040, 0x0020, CRC(27fa3a50) SHA1(7cf59b7a37c156640d6ea91554d1c4276c1780e0) ) /* ?? */ +ROM_END + + +DRIVER_INIT_MEMBER(redclash_state,redclash) { int i,j; const UINT8 *src = memregion("gfx2")->base(); @@ -584,9 +942,10 @@ DRIVER_INIT_MEMBER(ladybug_state,redclash) } -GAME( 1980, zerohour, 0, zerohour, zerohour, ladybug_state, redclash, ROT270, "Universal", "Zero Hour (set 1)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, zerohoura, zerohour, zerohour, zerohour, ladybug_state, redclash, ROT270, "Universal", "Zero Hour (set 2)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, zerohouri, zerohour, zerohour, zerohour, ladybug_state, redclash, ROT270, "bootleg (Inder SA)", "Zero Hour (Inder)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, redclash, 0, redclash, redclash, ladybug_state, redclash, ROT270, "Tehkan", "Red Clash (set 1)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, redclasha, redclash, redclash, redclash, ladybug_state, redclash, ROT270, "Tehkan", "Red Clash (set 2)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, redclashk, redclash, redclash, redclash, ladybug_state, redclash, ROT270, "Tehkan (Kaneko license)", "Red Clash (Kaneko)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, zerohour, 0, zerohour, zerohour, redclash_state, redclash, ROT270, "Universal", "Zero Hour (set 1)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, zerohoura, zerohour, zerohour, zerohour, redclash_state, redclash, ROT270, "Universal", "Zero Hour (set 2)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, zerohouri, zerohour, zerohour, zerohour, redclash_state, redclash, ROT270, "bootleg (Inder SA)", "Zero Hour (Inder)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, redclash, 0, redclash, redclash, redclash_state, redclash, ROT270, "Tehkan", "Red Clash (set 1)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, redclasha, redclash, redclash, redclash, redclash_state, redclash, ROT270, "Tehkan", "Red Clash (set 2)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, redclashk, redclash, redclash, redclash, redclash_state, redclash, ROT270, "Tehkan (Kaneko license)", "Red Clash (Kaneko)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, sraider, 0, sraider, sraider, driver_device, 0, ROT270, "Universal", "Space Raider", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/scorpion.cpp b/src/mame/drivers/scorpion.cpp index 8f8dc435c68..9de1d420c18 100644 --- a/src/mame/drivers/scorpion.cpp +++ b/src/mame/drivers/scorpion.cpp @@ -3,6 +3,7 @@ #include "emu.h" #include "includes/spectrum.h" +#include "includes/spec128.h" #include "imagedev/snapquik.h" #include "imagedev/cassette.h" #include "sound/ay8910.h" @@ -10,6 +11,8 @@ #include "formats/tzx_cas.h" #include "machine/beta.h" #include "machine/ram.h" +#include "machine/spec_snqk.h" + class scorpion_state : public spectrum_state { diff --git a/src/mame/drivers/spec128.cpp b/src/mame/drivers/spec128.cpp index 0c5161f65f4..16003d48206 100644 --- a/src/mame/drivers/spec128.cpp +++ b/src/mame/drivers/spec128.cpp @@ -153,6 +153,7 @@ resulting mess can be seen in the F4 viewer display. #include "emu.h" #include "cpu/z80/z80.h" #include "includes/spectrum.h" +#include "includes/spec128.h" #include "imagedev/snapquik.h" #include "imagedev/cassette.h" #include "sound/ay8910.h" diff --git a/src/mame/drivers/specpls3.cpp b/src/mame/drivers/specpls3.cpp index f94c769a9a6..fd28574892e 100644 --- a/src/mame/drivers/specpls3.cpp +++ b/src/mame/drivers/specpls3.cpp @@ -148,6 +148,8 @@ http://www.z88forever.org.uk/zxplus3e/ #include "emu.h" #include "includes/spectrum.h" +#include "includes/spec128.h" +#include "includes/specpls3.h" #include "imagedev/snapquik.h" #include "imagedev/cassette.h" #include "sound/ay8910.h" diff --git a/src/mame/drivers/taito_x.cpp b/src/mame/drivers/taito_x.cpp index ed18529079e..f85315c0535 100644 --- a/src/mame/drivers/taito_x.cpp +++ b/src/mame/drivers/taito_x.cpp @@ -321,6 +321,7 @@ Stephh's notes (based on the game M68000 code and some tests) : #include "includes/taitoipt.h" #include "audio/taitosnd.h" #include "includes/taito_x.h" +#include "machine/cchip.h" #include "sound/2610intf.h" #include "sound/2151intf.h" diff --git a/src/mame/drivers/timex.cpp b/src/mame/drivers/timex.cpp index 64c03c69713..97f0eba89e9 100644 --- a/src/mame/drivers/timex.cpp +++ b/src/mame/drivers/timex.cpp @@ -149,6 +149,8 @@ http://www.z88forever.org.uk/zxplus3e/ #include "emu.h" #include "cpu/z80/z80.h" #include "includes/spectrum.h" +#include "includes/spec128.h" +#include "includes/timex.h" #include "imagedev/snapquik.h" #include "imagedev/cassette.h" #include "sound/speaker.h" @@ -158,6 +160,7 @@ http://www.z88forever.org.uk/zxplus3e/ #include "machine/beta.h" #include "machine/ram.h" #include "softlist.h" +#include "machine/spec_snqk.h" /****************************************************************************************************/ /* TS2048 specific functions */ diff --git a/src/mame/includes/apple2e.h b/src/mame/includes/apple2e.h new file mode 100644 index 00000000000..29c45d5f9b4 --- /dev/null +++ b/src/mame/includes/apple2e.h @@ -0,0 +1,14 @@ +// license:BSD-3-Clause +// copyright-holders:R. Belmont +/*************************************************************************** + + includes/apple2e.h + +***************************************************************************/ + +#ifndef APPLE2E_H_ +#define APPLE2E_H_ + +INPUT_PORTS_EXTERN( apple2ep ); + +#endif /* APPLE2E_H_ */ diff --git a/src/mame/includes/coco3.h b/src/mame/includes/coco3.h index 9cc9a8d9d35..6439cefa4ec 100644 --- a/src/mame/includes/coco3.h +++ b/src/mame/includes/coco3.h @@ -14,7 +14,7 @@ #define __COCO3__ -#include "includes/coco.h" +#include "includes/coco12.h" #include "video/gime.h" diff --git a/src/mame/includes/kaypro.h b/src/mame/includes/kaypro.h index 1560c96f9d8..320d52aa3a1 100644 --- a/src/mame/includes/kaypro.h +++ b/src/mame/includes/kaypro.h @@ -106,5 +106,3 @@ private: optional_device m_crtc; required_device m_beep; }; - -INPUT_PORTS_EXTERN( kay_kbd ); diff --git a/src/mame/includes/ladybug.h b/src/mame/includes/ladybug.h index 8b7308edf5c..e6f5572f607 100644 --- a/src/mame/includes/ladybug.h +++ b/src/mame/includes/ladybug.h @@ -3,9 +3,7 @@ /************************************************************************* Universal 8106-A2 + 8106-B PCB set - - and Zero Hour / Red Clash - + *************************************************************************/ class ladybug_state : public driver_device @@ -34,10 +32,8 @@ public: /* video-related */ tilemap_t *m_bg_tilemap; tilemap_t *m_grid_tilemap; // ladybug - tilemap_t *m_fg_tilemap; // redclash UINT8 m_grid_color; int m_star_speed; - int m_gfxbank; // redclash only UINT8 m_stars_enable; UINT8 m_stars_speed; UINT32 m_stars_state; @@ -48,8 +44,6 @@ public: UINT8 m_sound_low; UINT8 m_sound_high; UINT8 m_weird_value[8]; - UINT8 m_sraider_0x30; - UINT8 m_sraider_0x38; /* devices */ required_device m_maincpu; @@ -60,59 +54,22 @@ public: optional_ioport m_p2_control; optional_shared_ptr m_decrypted_opcodes; - DECLARE_READ8_MEMBER(sraider_sound_low_r); - DECLARE_READ8_MEMBER(sraider_sound_high_r); - DECLARE_WRITE8_MEMBER(sraider_sound_low_w); - DECLARE_WRITE8_MEMBER(sraider_sound_high_w); - DECLARE_READ8_MEMBER(sraider_8005_r); - DECLARE_WRITE8_MEMBER(sraider_misc_w); DECLARE_WRITE8_MEMBER(ladybug_videoram_w); DECLARE_WRITE8_MEMBER(ladybug_colorram_w); DECLARE_WRITE8_MEMBER(ladybug_flipscreen_w); - DECLARE_WRITE8_MEMBER(sraider_io_w); DECLARE_CUSTOM_INPUT_MEMBER(ladybug_p1_control_r); DECLARE_CUSTOM_INPUT_MEMBER(ladybug_p2_control_r); DECLARE_INPUT_CHANGED_MEMBER(coin1_inserted); DECLARE_INPUT_CHANGED_MEMBER(coin2_inserted); - DECLARE_INPUT_CHANGED_MEMBER(left_coin_inserted); - DECLARE_INPUT_CHANGED_MEMBER(right_coin_inserted); DECLARE_DRIVER_INIT(dorodon); - DECLARE_DRIVER_INIT(redclash); TILE_GET_INFO_MEMBER(get_bg_tile_info); TILE_GET_INFO_MEMBER(get_grid_tile_info); - TILE_GET_INFO_MEMBER(get_fg_tile_info); DECLARE_MACHINE_START(ladybug); DECLARE_VIDEO_START(ladybug); DECLARE_PALETTE_INIT(ladybug); - DECLARE_MACHINE_START(sraider); - DECLARE_MACHINE_RESET(sraider); - DECLARE_VIDEO_START(sraider); - DECLARE_PALETTE_INIT(sraider); - DECLARE_MACHINE_START(redclash); - DECLARE_MACHINE_RESET(redclash); - DECLARE_VIDEO_START(redclash); - DECLARE_PALETTE_INIT(redclash); UINT32 screen_update_ladybug(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - UINT32 screen_update_sraider(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - UINT32 screen_update_redclash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - void screen_eof_sraider(screen_device &screen, bool state); - void screen_eof_redclash(screen_device &screen, bool state); void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); - DECLARE_WRITE8_MEMBER( redclash_videoram_w ); - DECLARE_WRITE8_MEMBER( redclash_gfxbank_w ); - DECLARE_WRITE8_MEMBER( redclash_flipscreen_w ); + void palette_init_common( palette_device &palette, const UINT8 *color_prom, + int r_bit0, int r_bit1, int g_bit0, int g_bit1, int b_bit0, int b_bit1 ); - DECLARE_WRITE8_MEMBER( redclash_star0_w ); - DECLARE_WRITE8_MEMBER( redclash_star1_w ); - DECLARE_WRITE8_MEMBER( redclash_star2_w ); - DECLARE_WRITE8_MEMBER( redclash_star_reset_w ); - DECLARE_WRITE8_MEMBER( irqack_w ); - - /* sraider uses the zerohour star generator board */ - void redclash_set_stars_enable(UINT8 on); - void redclash_update_stars_state(); - void redclash_set_stars_speed(UINT8 speed); - void redclash_draw_stars(bitmap_ind16 &bitmap, const rectangle &cliprect, UINT8 palette_offset, UINT8 sraider, UINT8 firstx, UINT8 lastx); - void redclash_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); - void redclash_draw_bullets( bitmap_ind16 &bitmap, const rectangle &cliprect ); }; diff --git a/src/mame/includes/megadriv.h b/src/mame/includes/megadriv.h index 41984596c09..702be472e7a 100644 --- a/src/mame/includes/megadriv.h +++ b/src/mame/includes/megadriv.h @@ -137,41 +137,6 @@ public: DECLARE_WRITE8_MEMBER(megadriv_tas_callback); }; - -class md_boot_state : public md_base_state -{ -public: - md_boot_state(const machine_config &mconfig, device_type type, const char *tag) - : md_base_state(mconfig, type, tag) { m_protcount = 0;} - - // bootleg specific - int m_aladmdb_mcu_port; - - int m_protcount; - - DECLARE_DRIVER_INIT(aladmdb); - DECLARE_DRIVER_INIT(mk3mdb); - DECLARE_DRIVER_INIT(ssf2mdb); - DECLARE_DRIVER_INIT(srmdb); - DECLARE_DRIVER_INIT(topshoot); - DECLARE_DRIVER_INIT(puckpkmn); - DECLARE_DRIVER_INIT(hshavoc); - DECLARE_WRITE16_MEMBER(bl_710000_w); - DECLARE_READ16_MEMBER(bl_710000_r); - DECLARE_WRITE16_MEMBER(aladmdb_w); - DECLARE_READ16_MEMBER(aladmdb_r); - DECLARE_READ16_MEMBER(mk3mdb_dsw_r); - DECLARE_READ16_MEMBER(ssf2mdb_dsw_r); - DECLARE_READ16_MEMBER(srmdb_dsw_r); - DECLARE_READ16_MEMBER(topshoot_200051_r); - DECLARE_READ16_MEMBER(puckpkmna_70001c_r); - DECLARE_READ16_MEMBER(puckpkmna_4b2476_r); - - DECLARE_MACHINE_START(md_bootleg) { MACHINE_START_CALL_MEMBER(megadriv); m_vdp->stop_timers(); } - DECLARE_MACHINE_START(md_6button); -}; - - class md_cons_state : public md_base_state { public: diff --git a/src/mame/includes/megadrvb.h b/src/mame/includes/megadrvb.h new file mode 100644 index 00000000000..5be00cf1810 --- /dev/null +++ b/src/mame/includes/megadrvb.h @@ -0,0 +1,37 @@ +// license:BSD-3-Clause +// copyright-holders:David Haywood + +class md_boot_state : public md_base_state +{ +public: + md_boot_state(const machine_config &mconfig, device_type type, const char *tag) + : md_base_state(mconfig, type, tag) { m_protcount = 0;} + + // bootleg specific + int m_aladmdb_mcu_port; + + int m_protcount; + + DECLARE_DRIVER_INIT(aladmdb); + DECLARE_DRIVER_INIT(mk3mdb); + DECLARE_DRIVER_INIT(ssf2mdb); + DECLARE_DRIVER_INIT(srmdb); + DECLARE_DRIVER_INIT(topshoot); + DECLARE_DRIVER_INIT(puckpkmn); + DECLARE_DRIVER_INIT(hshavoc); + DECLARE_WRITE16_MEMBER(bl_710000_w); + DECLARE_READ16_MEMBER(bl_710000_r); + DECLARE_WRITE16_MEMBER(aladmdb_w); + DECLARE_READ16_MEMBER(aladmdb_r); + DECLARE_READ16_MEMBER(mk3mdb_dsw_r); + DECLARE_READ16_MEMBER(ssf2mdb_dsw_r); + DECLARE_READ16_MEMBER(srmdb_dsw_r); + DECLARE_READ16_MEMBER(topshoot_200051_r); + DECLARE_READ16_MEMBER(puckpkmna_70001c_r); + DECLARE_READ16_MEMBER(puckpkmna_4b2476_r); + + DECLARE_MACHINE_START(md_bootleg) { MACHINE_START_CALL_MEMBER(megadriv); m_vdp->stop_timers(); } + DECLARE_MACHINE_START(md_6button); +}; + + diff --git a/src/mame/includes/midzeus.h b/src/mame/includes/midzeus.h index 54850ec49d3..9e8a717c3e0 100644 --- a/src/mame/includes/midzeus.h +++ b/src/mame/includes/midzeus.h @@ -85,24 +85,3 @@ private: void update_gun_irq(); }; - -class midzeus2_state : public midzeus_state -{ -public: - midzeus2_state(const machine_config &mconfig, device_type type, const char *tag) - : midzeus_state(mconfig, type, tag) { } - - DECLARE_VIDEO_START(midzeus2); - UINT32 screen_update_midzeus2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - DECLARE_READ32_MEMBER( zeus2_r ); - DECLARE_WRITE32_MEMBER( zeus2_w ); -private: - TIMER_CALLBACK_MEMBER(int_timer_callback); - void exit_handler2(); - void zeus2_register32_w(offs_t offset, UINT32 data, int logit); - void zeus2_register_update(offs_t offset, UINT32 oldval, int logit); - int zeus2_fifo_process(const UINT32 *data, int numwords); - void zeus2_pointer_write(UINT8 which, UINT32 value); - void zeus2_draw_model(UINT32 baseaddr, UINT16 count, int logit); - void log_fifo_command(const UINT32 *data, int numwords, const char *suffix); -}; diff --git a/src/mame/includes/midzeus2.h b/src/mame/includes/midzeus2.h new file mode 100644 index 00000000000..ff876ae1b94 --- /dev/null +++ b/src/mame/includes/midzeus2.h @@ -0,0 +1,28 @@ +// license:BSD-3-Clause +// copyright-holders:Aaron Giles +/************************************************************************* + + Driver for Midway Zeus games + +**************************************************************************/ + +class midzeus2_state : public midzeus_state +{ +public: + midzeus2_state(const machine_config &mconfig, device_type type, const char *tag) + : midzeus_state(mconfig, type, tag) { } + + DECLARE_VIDEO_START(midzeus2); + UINT32 screen_update_midzeus2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + DECLARE_READ32_MEMBER( zeus2_r ); + DECLARE_WRITE32_MEMBER( zeus2_w ); +private: + TIMER_CALLBACK_MEMBER(int_timer_callback); + void exit_handler2(); + void zeus2_register32_w(offs_t offset, UINT32 data, int logit); + void zeus2_register_update(offs_t offset, UINT32 oldval, int logit); + int zeus2_fifo_process(const UINT32 *data, int numwords); + void zeus2_pointer_write(UINT8 which, UINT32 value); + void zeus2_draw_model(UINT32 baseaddr, UINT16 count, int logit); + void log_fifo_command(const UINT32 *data, int numwords, const char *suffix); +}; diff --git a/src/mame/includes/redclash.h b/src/mame/includes/redclash.h new file mode 100644 index 00000000000..7ebbc12e5e2 --- /dev/null +++ b/src/mame/includes/redclash.h @@ -0,0 +1,64 @@ +// license:BSD-3-Clause +// copyright-holders:Nicola Salmoria +/************************************************************************* + + Zero Hour / Red Clash + +*************************************************************************/ + +#include "includes/ladybug.h" + +class redclash_state : public ladybug_state +{ +public: + redclash_state(const machine_config &mconfig, device_type type, const char *tag) + : ladybug_state(mconfig, type, tag) { } + + tilemap_t *m_fg_tilemap; // redclash + int m_gfxbank; // redclash only + + /* misc */ + UINT8 m_sraider_0x30; + UINT8 m_sraider_0x38; + + DECLARE_READ8_MEMBER(sraider_sound_low_r); + DECLARE_READ8_MEMBER(sraider_sound_high_r); + DECLARE_WRITE8_MEMBER(sraider_sound_low_w); + DECLARE_WRITE8_MEMBER(sraider_sound_high_w); + DECLARE_READ8_MEMBER(sraider_8005_r); + DECLARE_WRITE8_MEMBER(sraider_misc_w); + DECLARE_WRITE8_MEMBER(sraider_io_w); + DECLARE_INPUT_CHANGED_MEMBER(left_coin_inserted); + DECLARE_INPUT_CHANGED_MEMBER(right_coin_inserted); + DECLARE_DRIVER_INIT(redclash); + DECLARE_MACHINE_START(sraider); + DECLARE_MACHINE_RESET(sraider); + DECLARE_VIDEO_START(sraider); + DECLARE_PALETTE_INIT(sraider); + DECLARE_MACHINE_START(redclash); + DECLARE_MACHINE_RESET(redclash); + DECLARE_VIDEO_START(redclash); + DECLARE_PALETTE_INIT(redclash); + UINT32 screen_update_sraider(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + UINT32 screen_update_redclash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void screen_eof_sraider(screen_device &screen, bool state); + void screen_eof_redclash(screen_device &screen, bool state); + DECLARE_WRITE8_MEMBER( redclash_videoram_w ); + DECLARE_WRITE8_MEMBER( redclash_gfxbank_w ); + DECLARE_WRITE8_MEMBER( redclash_flipscreen_w ); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + + DECLARE_WRITE8_MEMBER( redclash_star0_w ); + DECLARE_WRITE8_MEMBER( redclash_star1_w ); + DECLARE_WRITE8_MEMBER( redclash_star2_w ); + DECLARE_WRITE8_MEMBER( redclash_star_reset_w ); + DECLARE_WRITE8_MEMBER( irqack_w ); + + /* sraider uses the zerohour star generator board */ + void redclash_set_stars_enable(UINT8 on); + void redclash_update_stars_state(); + void redclash_set_stars_speed(UINT8 speed); + void redclash_draw_stars(bitmap_ind16 &bitmap, const rectangle &cliprect, UINT8 palette_offset, UINT8 sraider, UINT8 firstx, UINT8 lastx); + void redclash_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); + void redclash_draw_bullets( bitmap_ind16 &bitmap, const rectangle &cliprect ); +}; diff --git a/src/mame/includes/spec128.h b/src/mame/includes/spec128.h new file mode 100644 index 00000000000..75747182f79 --- /dev/null +++ b/src/mame/includes/spec128.h @@ -0,0 +1,19 @@ +// license:GPL-2.0+ +// copyright-holders:Kevin Thacker +/***************************************************************************** + * + * includes/spec128.h + * + ****************************************************************************/ + +#ifndef __SPEC128H__ +#define __SPEC128H__ + +/* 128K machines take an extra 4 cycles per scan line - add this to retrace */ +#define SPEC128_UNSEEN_LINES 15 +#define SPEC128_RETRACE_CYCLES 52 +#define SPEC128_CYCLES_PER_LINE 228 + +MACHINE_CONFIG_EXTERN( spectrum_128 ); + +#endif /* __SPEC128H__ */ diff --git a/src/mame/includes/specpls3.h b/src/mame/includes/specpls3.h new file mode 100644 index 00000000000..644b0ef461e --- /dev/null +++ b/src/mame/includes/specpls3.h @@ -0,0 +1,14 @@ +// license:GPL-2.0+ +// copyright-holders:Kevin Thacker +/***************************************************************************** + * + * includes/specpls3.h + * + ****************************************************************************/ + +#ifndef __SPECPLS3_H__ +#define __SPECPLS3_H__ + +INPUT_PORTS_EXTERN( spec_plus ); + +#endif /* __SPECPLS3_H__ */ diff --git a/src/mame/includes/spectrum.h b/src/mame/includes/spectrum.h index bd4d0511cab..38baeea3a5b 100644 --- a/src/mame/includes/spectrum.h +++ b/src/mame/includes/spectrum.h @@ -16,6 +16,7 @@ #include "imagedev/cassette.h" #include "bus/generic/slot.h" #include "bus/generic/carts.h" +#include "machine/spec_snqk.h" /* Spectrum crystals */ @@ -44,23 +45,6 @@ #define SPEC_RETRACE_CYCLES 48 /* Cycles taken for horizonal retrace */ #define SPEC_CYCLES_PER_LINE 224 /* Number of cycles to display a single line */ -/* 128K machines take an extra 4 cycles per scan line - add this to retrace */ -#define SPEC128_UNSEEN_LINES 15 -#define SPEC128_RETRACE_CYCLES 52 -#define SPEC128_CYCLES_PER_LINE 228 - -/* Border sizes for TS2068. These are guesses based on the number of cycles - available per frame. */ -#define TS2068_TOP_BORDER 32 -#define TS2068_BOTTOM_BORDER 32 -#define TS2068_SCREEN_HEIGHT (TS2068_TOP_BORDER + SPEC_DISPLAY_YSIZE + TS2068_BOTTOM_BORDER) - -/* Double the border sizes to maintain ratio of screen to border */ -#define TS2068_LEFT_BORDER 96 /* Number of left hand border pixels */ -#define TS2068_DISPLAY_XSIZE 512 /* Horizontal screen resolution */ -#define TS2068_RIGHT_BORDER 96 /* Number of right hand border pixels */ -#define TS2068_SCREEN_WIDTH (TS2068_LEFT_BORDER + TS2068_DISPLAY_XSIZE + TS2068_RIGHT_BORDER) - struct EVENT_LIST_ITEM { /* driver defined ID for this write */ @@ -72,15 +56,6 @@ struct EVENT_LIST_ITEM }; -enum -{ - TIMEX_CART_NONE, - TIMEX_CART_DOCK, - TIMEX_CART_EXROM, - TIMEX_CART_HOME -}; - - class spectrum_state : public driver_device { public: @@ -255,8 +230,4 @@ INPUT_PORTS_EXTERN( spec_plus ); MACHINE_CONFIG_EXTERN( spectrum ); -/*----------- defined in drivers/spec128.c -----------*/ - -MACHINE_CONFIG_EXTERN( spectrum_128 ); - #endif /* __SPECTRUM_H__ */ diff --git a/src/mame/includes/timex.h b/src/mame/includes/timex.h new file mode 100644 index 00000000000..7587fbf4655 --- /dev/null +++ b/src/mame/includes/timex.h @@ -0,0 +1,34 @@ +// license:GPL-2.0+ +// copyright-holders:Kevin Thacker +/***************************************************************************** + * + * includes/timex.h + * + ****************************************************************************/ + +#ifndef __TIMEX_H__ +#define __TIMEX_H__ + +/* Border sizes for TS2068. These are guesses based on the number of cycles + available per frame. */ +#define TS2068_TOP_BORDER 32 +#define TS2068_BOTTOM_BORDER 32 +#define TS2068_SCREEN_HEIGHT (TS2068_TOP_BORDER + SPEC_DISPLAY_YSIZE + TS2068_BOTTOM_BORDER) + +/* Double the border sizes to maintain ratio of screen to border */ +#define TS2068_LEFT_BORDER 96 /* Number of left hand border pixels */ +#define TS2068_DISPLAY_XSIZE 512 /* Horizontal screen resolution */ +#define TS2068_RIGHT_BORDER 96 /* Number of right hand border pixels */ +#define TS2068_SCREEN_WIDTH (TS2068_LEFT_BORDER + TS2068_DISPLAY_XSIZE + TS2068_RIGHT_BORDER) + +enum +{ + TIMEX_CART_NONE, + TIMEX_CART_DOCK, + TIMEX_CART_EXROM, + TIMEX_CART_HOME +}; + + + +#endif /* __TIMEX_H__ */ diff --git a/src/mame/layout/ninjaw.lay b/src/mame/layout/ninjaw.lay new file mode 100644 index 00000000000..e0a7010ae8b --- /dev/null +++ b/src/mame/layout/ninjaw.lay @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/mame/machine/acitya.h b/src/mame/machine/acitya.h new file mode 100644 index 00000000000..f15a7f4cd0e --- /dev/null +++ b/src/mame/machine/acitya.h @@ -0,0 +1,2 @@ +// license:BSD-3-Clause +// copyright-holders:David Widel diff --git a/src/mame/machine/bonzeadv.h b/src/mame/machine/bonzeadv.h new file mode 100644 index 00000000000..ec8eae48de4 --- /dev/null +++ b/src/mame/machine/bonzeadv.h @@ -0,0 +1,2 @@ +// license:BSD-3-Clause +// copyright-holders:Ernesto Corvi, Nicola Salmoria diff --git a/src/mame/machine/cchip.h b/src/mame/machine/cchip.h new file mode 100644 index 00000000000..5c86f3b56c1 --- /dev/null +++ b/src/mame/machine/cchip.h @@ -0,0 +1,3 @@ +// license:BSD-3-Clause +// copyright-holders:Bryan McPhail, Nicola Salmoria +// thanks-to:Richard Bush diff --git a/src/mame/machine/hng64_net.h b/src/mame/machine/hng64_net.h new file mode 100644 index 00000000000..fd28a398efe --- /dev/null +++ b/src/mame/machine/hng64_net.h @@ -0,0 +1,4 @@ +// license:LGPL-2.1+ +// copyright-holders:David Haywood, Angelo Salese, ElSemi, Andrew Gardner + +MACHINE_CONFIG_EXTERN(hng64_network); diff --git a/src/mame/machine/jumpshot.h b/src/mame/machine/jumpshot.h new file mode 100644 index 00000000000..6d2f3b8a4dd --- /dev/null +++ b/src/mame/machine/jumpshot.h @@ -0,0 +1,2 @@ +// license:BSD-3-Clause +// copyright-holders:Nicola Salmoria diff --git a/src/mame/machine/kay_kbd.h b/src/mame/machine/kay_kbd.h new file mode 100644 index 00000000000..6dc347d78b0 --- /dev/null +++ b/src/mame/machine/kay_kbd.h @@ -0,0 +1,4 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert + +INPUT_PORTS_EXTERN( kay_kbd ); diff --git a/src/mame/machine/macadb.h b/src/mame/machine/macadb.h new file mode 100644 index 00000000000..2067f492cf9 --- /dev/null +++ b/src/mame/machine/macadb.h @@ -0,0 +1,3 @@ +// license:BSD-3-Clause +// copyright-holders:R. Belmont + diff --git a/src/mame/machine/megadriv.cpp b/src/mame/machine/megadriv.cpp index ad16299070f..f52ef84af32 100644 --- a/src/mame/machine/megadriv.cpp +++ b/src/mame/machine/megadriv.cpp @@ -755,38 +755,6 @@ static ADDRESS_MAP_START( megadriv_z80_io_map, AS_IO, 8, md_base_state ) AM_RANGE(0x0000, 0xff) AM_NOP ADDRESS_MAP_END - -/************************************ Megadrive Bootlegs *************************************/ - -// smaller ROM region because some bootlegs check for RAM there (used by topshoot and hshavoc) -static ADDRESS_MAP_START( md_bootleg_map, AS_PROGRAM, 16, md_boot_state ) - AM_RANGE(0x000000, 0x0fffff) AM_ROM /* Cartridge Program Rom */ - AM_RANGE(0x200000, 0x2023ff) AM_RAM // tested - - AM_RANGE(0xa00000, 0xa01fff) AM_READWRITE(megadriv_68k_read_z80_ram, megadriv_68k_write_z80_ram) - AM_RANGE(0xa02000, 0xa03fff) AM_WRITE(megadriv_68k_write_z80_ram) - AM_RANGE(0xa04000, 0xa04003) AM_READWRITE8(megadriv_68k_YM2612_read, megadriv_68k_YM2612_write, 0xffff) - AM_RANGE(0xa06000, 0xa06001) AM_WRITE(megadriv_68k_z80_bank_write) - - AM_RANGE(0xa10000, 0xa1001f) AM_READWRITE(megadriv_68k_io_read, megadriv_68k_io_write) - AM_RANGE(0xa11100, 0xa11101) AM_READWRITE(megadriv_68k_check_z80_bus, megadriv_68k_req_z80_bus) - AM_RANGE(0xa11200, 0xa11201) AM_WRITE(megadriv_68k_req_z80_reset) - - AM_RANGE(0xc00000, 0xc0001f) AM_DEVREADWRITE("gen_vdp", sega315_5313_device, vdp_r, vdp_w) - AM_RANGE(0xd00000, 0xd0001f) AM_DEVREADWRITE("gen_vdp", sega315_5313_device, vdp_r, vdp_w) - - AM_RANGE(0xe00000, 0xe0ffff) AM_RAM AM_MIRROR(0x1f0000) AM_SHARE("megadrive_ram") -ADDRESS_MAP_END - -MACHINE_CONFIG_START( md_bootleg, md_boot_state ) - MCFG_FRAGMENT_ADD( md_ntsc ) - - MCFG_CPU_MODIFY("maincpu") - MCFG_CPU_PROGRAM_MAP(md_bootleg_map) -MACHINE_CONFIG_END - - - UINT32 md_base_state::screen_update_megadriv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { /* Copy our screen buffer here */ diff --git a/src/mame/drivers/namcoic.cpp b/src/mame/machine/namcoic.cpp similarity index 100% rename from src/mame/drivers/namcoic.cpp rename to src/mame/machine/namcoic.cpp diff --git a/src/mame/drivers/nl_breakout.cpp b/src/mame/machine/nl_breakout.cpp similarity index 100% rename from src/mame/drivers/nl_breakout.cpp rename to src/mame/machine/nl_breakout.cpp diff --git a/src/mame/machine/nl_breakout.h b/src/mame/machine/nl_breakout.h new file mode 100644 index 00000000000..193eaa97727 --- /dev/null +++ b/src/mame/machine/nl_breakout.h @@ -0,0 +1,4 @@ +// license:GPL-2.0+ +// copyright-holders:DICE Team,Couriersud + +NETLIST_EXTERNAL(breakout) diff --git a/src/mame/drivers/nl_pong.cpp b/src/mame/machine/nl_pong.cpp similarity index 100% rename from src/mame/drivers/nl_pong.cpp rename to src/mame/machine/nl_pong.cpp diff --git a/src/mame/machine/nl_pong.h b/src/mame/machine/nl_pong.h new file mode 100644 index 00000000000..0152f07e32b --- /dev/null +++ b/src/mame/machine/nl_pong.h @@ -0,0 +1,4 @@ +// license:GPL-2.0+ +// copyright-holders: Couriersud + +NETLIST_EXTERNAL(pong_fast) diff --git a/src/mame/drivers/nl_pongd.cpp b/src/mame/machine/nl_pongd.cpp similarity index 100% rename from src/mame/drivers/nl_pongd.cpp rename to src/mame/machine/nl_pongd.cpp diff --git a/src/mame/machine/nl_pongd.h b/src/mame/machine/nl_pongd.h new file mode 100644 index 00000000000..2d7ff28b9a6 --- /dev/null +++ b/src/mame/machine/nl_pongd.h @@ -0,0 +1,4 @@ +// license:GPL-2.0+ +// copyright-holders:DICE Team,couriersud + +NETLIST_EXTERNAL(pongdoubles) diff --git a/src/mame/machine/pacplus.h b/src/mame/machine/pacplus.h new file mode 100644 index 00000000000..6d2f3b8a4dd --- /dev/null +++ b/src/mame/machine/pacplus.h @@ -0,0 +1,2 @@ +// license:BSD-3-Clause +// copyright-holders:Nicola Salmoria diff --git a/src/mame/machine/spec_snqk.cpp b/src/mame/machine/spec_snqk.cpp index b02203e7f55..1c445087a27 100644 --- a/src/mame/machine/spec_snqk.cpp +++ b/src/mame/machine/spec_snqk.cpp @@ -31,6 +31,9 @@ #include "ui/uimain.h" #include "cpu/z80/z80.h" #include "includes/spectrum.h" +#include "includes/spec128.h" +#include "includes/timex.h" +#include "includes/specpls3.h" #include "sound/ay8910.h" #include "machine/spec_snqk.h" diff --git a/src/mame/machine/theglobp.h b/src/mame/machine/theglobp.h new file mode 100644 index 00000000000..6d2f3b8a4dd --- /dev/null +++ b/src/mame/machine/theglobp.h @@ -0,0 +1,2 @@ +// license:BSD-3-Clause +// copyright-holders:Nicola Salmoria diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 48901294957..472b2863035 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -16704,7 +16704,6 @@ ladybgb2 // bootleg ladybug // 8110 (c) 1981 ladybugb // bootleg snapjack // ???? (c) -sraider // ???? (c) 1982 Universal @source:ladyfrog.cpp ladyfrog // (c) 1990 Mondial Games @@ -19417,7 +19416,6 @@ rampage2 // (c) 1986 sarge // (c) 1985 spyhunt // (c) 1983 spyhuntp // (c) 1983 -spyhuntpr // stargrds // (c) 1987 turbotag // (c) 1985 @@ -31168,6 +31166,7 @@ redclashk // (c) Kaneko (bootleg?) zerohour // 8011 (c) Universal zerohoura // 8011 (c) Universal zerohouri // +sraider // ???? (c) 1982 Universal @source:relief.cpp relief // 136093 (c) 1992 @@ -33544,6 +33543,9 @@ sprint8a // ?????? 1977/05 [6800] spy // GX857 (c) 1989 (World) spyu // GX857 (c) 1989 (US) +@source:spyhuntertec.cpp +spyhuntpr // + @source:squale.cpp squale // diff --git a/src/mame/video/hng64.cpp b/src/mame/video/hng64.cpp index a666474bb5e..3e8d18e4d82 100644 --- a/src/mame/video/hng64.cpp +++ b/src/mame/video/hng64.cpp @@ -1295,3 +1295,6 @@ void hng64_state::video_start() m_vertsrom = (UINT16*)memregion("verts")->base(); m_vertsrom_size = memregion("verts")->bytes(); } + +#include "video/hng64_3d.inc" +#include "video/hng64_sprite.inc" diff --git a/src/mame/video/hng64_3d.cpp b/src/mame/video/hng64_3d.inc similarity index 99% rename from src/mame/video/hng64_3d.cpp rename to src/mame/video/hng64_3d.inc index b28aa4109d6..b29c66414f7 100644 --- a/src/mame/video/hng64_3d.cpp +++ b/src/mame/video/hng64_3d.inc @@ -1,9 +1,6 @@ // license:LGPL-2.1+ // copyright-holders:David Haywood, Angelo Salese, ElSemi, Andrew Gardner, Andrew Zaferakis -#include "includes/hng64.h" - - ///////////////////////////////// /// Hyper NeoGeo 64 - 3D bits /// ///////////////////////////////// diff --git a/src/mame/video/hng64_sprite.cpp b/src/mame/video/hng64_sprite.inc similarity index 99% rename from src/mame/video/hng64_sprite.cpp rename to src/mame/video/hng64_sprite.inc index 2bc13e8313a..b24d93753c9 100644 --- a/src/mame/video/hng64_sprite.cpp +++ b/src/mame/video/hng64_sprite.inc @@ -3,8 +3,6 @@ /* Hyper NeoGeo 64 Sprite bits */ -#include "includes/hng64.h" - /* * Sprite Format * ------------------ diff --git a/src/mame/video/ladybug.cpp b/src/mame/video/ladybug.cpp index 4fe3c200853..773344349c5 100644 --- a/src/mame/video/ladybug.cpp +++ b/src/mame/video/ladybug.cpp @@ -31,7 +31,7 @@ ***************************************************************************/ -static void palette_init_common( palette_device &palette, const UINT8 *color_prom, +void ladybug_state::palette_init_common( palette_device &palette, const UINT8 *color_prom, int r_bit0, int r_bit1, int g_bit0, int g_bit1, int b_bit0, int b_bit1 ) { static const int resistances[2] = { 470, 220 }; @@ -98,44 +98,6 @@ PALETTE_INIT_MEMBER(ladybug_state,ladybug) palette_init_common(palette, color_prom, 0, 5, 2, 6, 4, 7); } -PALETTE_INIT_MEMBER(ladybug_state,sraider) -{ - const UINT8 *color_prom = memregion("proms")->base(); - int i; - - /* the resistor net may be probably different than Lady Bug */ - palette_init_common(palette, color_prom, 3, 0, 5, 4, 7, 6); - - /* star colors */ - for (i = 0x20; i < 0x40; i++) - { - int bit0, bit1; - int r, g, b; - - /* red component */ - bit0 = ((i - 0x20) >> 3) & 0x01; - bit1 = ((i - 0x20) >> 4) & 0x01; - b = 0x47 * bit0 + 0x97 * bit1; - - /* green component */ - bit0 = ((i - 0x20) >> 1) & 0x01; - bit1 = ((i - 0x20) >> 2) & 0x01; - g = 0x47 * bit0 + 0x97 * bit1; - - /* blue component */ - bit0 = ((i - 0x20) >> 0) & 0x01; - r = 0x47 * bit0; - - palette.set_indirect_color(i, rgb_t(r, g, b)); - } - - for (i = 0x60; i < 0x80; i++) - palette.set_pen_indirect(i, (i - 0x60) + 0x20); - - /* stationary part of grid */ - palette.set_pen_indirect(0x81, 0x40); -} - WRITE8_MEMBER(ladybug_state::ladybug_videoram_w) { m_videoram[offset] = data; @@ -157,34 +119,6 @@ WRITE8_MEMBER(ladybug_state::ladybug_flipscreen_w) } } -WRITE8_MEMBER(ladybug_state::sraider_io_w) -{ - // bit7 = flip - // bit6 = grid red - // bit5 = grid green - // bit4 = grid blue - // bit3 = enable stars - // bit210 = stars speed/dir - - if (flip_screen() != (data & 0x80)) - { - flip_screen_set(data & 0x80); - machine().tilemap().mark_all_dirty(); - } - - m_grid_color = data & 0x70; - - redclash_set_stars_enable((data & 0x08) >> 3); - - /* - * There must be a subtle clocking difference between - * Space Raider and the other games using this star generator, - * hence the -1 here - */ - - redclash_set_stars_speed((data & 0x07) - 1); -} - TILE_GET_INFO_MEMBER(ladybug_state::get_bg_tile_info) { int code = m_videoram[tile_index] + 32 * (m_colorram[tile_index] & 0x08); @@ -212,17 +146,6 @@ VIDEO_START_MEMBER(ladybug_state,ladybug) m_bg_tilemap->set_transparent_pen(0); } -VIDEO_START_MEMBER(ladybug_state,sraider) -{ - m_grid_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(ladybug_state::get_grid_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - m_grid_tilemap->set_scroll_rows(32); - m_grid_tilemap->set_transparent_pen(0); - - m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(ladybug_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - m_bg_tilemap->set_scroll_rows(32); - m_bg_tilemap->set_transparent_pen(0); -} - void ladybug_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) { UINT8 *spriteram = m_spriteram; @@ -296,66 +219,3 @@ UINT32 ladybug_state::screen_update_ladybug(screen_device &screen, bitmap_ind16 return 0; } -void ladybug_state::screen_eof_sraider(screen_device &screen, bool state)/* update starfield position */ -{ - // falling edge - if (!state) - redclash_update_stars_state(); -} - -UINT32 ladybug_state::screen_update_sraider(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) -{ - // this part is boilerplate from ladybug, not sure if hardware does this, - // since it's not used - - int offs; - int i; - - for (offs = 0; offs < 32; offs++) - { - int sx = offs % 4; - int sy = offs / 4; - - if (flip_screen()) - m_bg_tilemap->set_scrollx(offs, -m_videoram[32 * sx + sy]); - else - m_bg_tilemap->set_scrollx(offs, m_videoram[32 * sx + sy]); - } - - // clear the bg bitmap - bitmap.fill(0, cliprect); - - // draw the stars - if (flip_screen()) - redclash_draw_stars(bitmap, cliprect, 0x60, 1, 0x27, 0xff); - else - redclash_draw_stars(bitmap, cliprect, 0x60, 1, 0x00, 0xd8); - - // draw the gridlines - m_palette->set_indirect_color(0x40, rgb_t(m_grid_color & 0x40 ? 0xff : 0, - m_grid_color & 0x20 ? 0xff : 0, - m_grid_color & 0x10 ? 0xff : 0)); - m_grid_tilemap->draw(screen, bitmap, cliprect, 0, flip_screen()); - - for (i = 0; i < 0x100; i++) - { - if (m_grid_data[i] != 0) - { - UINT8 x = i; - int height = cliprect.max_y - cliprect.min_y + 1; - - if (flip_screen()) - x = ~x; - - bitmap.plot_box(x, cliprect.min_y, 1, height, 0x81); - } - } - - // now the chars - m_bg_tilemap->draw(screen, bitmap, cliprect, 0, flip_screen()); - - // now the sprites - draw_sprites(bitmap, cliprect); - - return 0; -} diff --git a/src/mame/video/midzeus2.cpp b/src/mame/video/midzeus2.cpp index be97a461cfb..7f196f35780 100644 --- a/src/mame/video/midzeus2.cpp +++ b/src/mame/video/midzeus2.cpp @@ -9,6 +9,7 @@ #include "emu.h" #include "cpu/tms32031/tms32031.h" #include "includes/midzeus.h" +#include "includes/midzeus2.h" #include "video/poly.h" #include "video/rgbutil.h" diff --git a/src/mame/video/redclash.cpp b/src/mame/video/redclash.cpp index 68b6664237c..4b8b93bebac 100644 --- a/src/mame/video/redclash.cpp +++ b/src/mame/video/redclash.cpp @@ -9,7 +9,8 @@ ***************************************************************************/ #include "emu.h" -#include "includes/ladybug.h" +#include "includes/redclash.h" +#include "video/resnet.h" /*************************************************************************** @@ -20,7 +21,7 @@ ***************************************************************************/ -PALETTE_INIT_MEMBER(ladybug_state,redclash) +PALETTE_INIT_MEMBER(redclash_state,redclash) { const UINT8 *color_prom = memregion("proms")->base(); int i; @@ -99,13 +100,52 @@ PALETTE_INIT_MEMBER(ladybug_state,redclash) palette.set_pen_indirect(i, (i - 0x60) + 0x20); } -WRITE8_MEMBER( ladybug_state::redclash_videoram_w ) +PALETTE_INIT_MEMBER(redclash_state,sraider) +{ + const UINT8 *color_prom = memregion("proms")->base(); + int i; + + /* the resistor net may be probably different than Lady Bug */ + palette_init_common(palette, color_prom, 3, 0, 5, 4, 7, 6); + + /* star colors */ + for (i = 0x20; i < 0x40; i++) + { + int bit0, bit1; + int r, g, b; + + /* red component */ + bit0 = ((i - 0x20) >> 3) & 0x01; + bit1 = ((i - 0x20) >> 4) & 0x01; + b = 0x47 * bit0 + 0x97 * bit1; + + /* green component */ + bit0 = ((i - 0x20) >> 1) & 0x01; + bit1 = ((i - 0x20) >> 2) & 0x01; + g = 0x47 * bit0 + 0x97 * bit1; + + /* blue component */ + bit0 = ((i - 0x20) >> 0) & 0x01; + r = 0x47 * bit0; + + palette.set_indirect_color(i, rgb_t(r, g, b)); + } + + for (i = 0x60; i < 0x80; i++) + palette.set_pen_indirect(i, (i - 0x60) + 0x20); + + /* stationary part of grid */ + palette.set_pen_indirect(0x81, 0x40); +} + + +WRITE8_MEMBER( redclash_state::redclash_videoram_w ) { m_videoram[offset] = data; m_fg_tilemap->mark_tile_dirty(offset); } -WRITE8_MEMBER( ladybug_state::redclash_gfxbank_w ) +WRITE8_MEMBER( redclash_state::redclash_gfxbank_w ) { if (m_gfxbank != (data & 0x01)) { @@ -114,7 +154,7 @@ WRITE8_MEMBER( ladybug_state::redclash_gfxbank_w ) } } -WRITE8_MEMBER( ladybug_state::redclash_flipscreen_w ) +WRITE8_MEMBER( redclash_state::redclash_flipscreen_w ) { flip_screen_set(data & 0x01); } @@ -130,30 +170,30 @@ star_speed: 6 = backwards medium 7 = backwards fast */ -WRITE8_MEMBER( ladybug_state::redclash_star0_w ) +WRITE8_MEMBER( redclash_state::redclash_star0_w ) { m_star_speed = (m_star_speed & ~1) | ((data & 1) << 0); redclash_set_stars_speed(m_star_speed); } -WRITE8_MEMBER( ladybug_state::redclash_star1_w ) +WRITE8_MEMBER( redclash_state::redclash_star1_w ) { m_star_speed = (m_star_speed & ~2) | ((data & 1) << 1); redclash_set_stars_speed(m_star_speed); } -WRITE8_MEMBER( ladybug_state::redclash_star2_w ) +WRITE8_MEMBER( redclash_state::redclash_star2_w ) { m_star_speed = (m_star_speed & ~4) | ((data & 1) << 2); redclash_set_stars_speed( m_star_speed); } -WRITE8_MEMBER( ladybug_state::redclash_star_reset_w ) +WRITE8_MEMBER( redclash_state::redclash_star_reset_w ) { redclash_set_stars_enable(1); } -TILE_GET_INFO_MEMBER(ladybug_state::get_fg_tile_info) +TILE_GET_INFO_MEMBER(redclash_state::get_fg_tile_info) { int code = m_videoram[tile_index]; int color = (m_videoram[tile_index] & 0x70) >> 4; // ?? @@ -161,13 +201,13 @@ TILE_GET_INFO_MEMBER(ladybug_state::get_fg_tile_info) SET_TILE_INFO_MEMBER(0, code, color, 0); } -VIDEO_START_MEMBER(ladybug_state,redclash) +VIDEO_START_MEMBER(redclash_state,redclash) { - m_fg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(ladybug_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + m_fg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(redclash_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); m_fg_tilemap->set_transparent_pen(0); } -void ladybug_state::redclash_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) +void redclash_state::redclash_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) { UINT8 *spriteram = m_spriteram; int i, offs; @@ -250,7 +290,7 @@ void ladybug_state::redclash_draw_sprites( bitmap_ind16 &bitmap, const rectangle } } -void ladybug_state::redclash_draw_bullets( bitmap_ind16 &bitmap, const rectangle &cliprect ) +void redclash_state::redclash_draw_bullets( bitmap_ind16 &bitmap, const rectangle &cliprect ) { int offs; @@ -284,7 +324,7 @@ void ladybug_state::redclash_draw_bullets( bitmap_ind16 &bitmap, const rectangle */ /* This line can reset the LFSR to zero and disables the star generator */ -void ladybug_state::redclash_set_stars_enable(UINT8 on) +void redclash_state::redclash_set_stars_enable(UINT8 on) { if ((m_stars_enable == 0) && (on == 1)) { @@ -297,7 +337,7 @@ void ladybug_state::redclash_set_stars_enable(UINT8 on) /* This sets up which starfield to draw and the offset, */ /* To be called from screen_eof_*() */ -void ladybug_state::redclash_update_stars_state() +void redclash_state::redclash_update_stars_state() { if (m_stars_enable == 0) return; @@ -328,7 +368,7 @@ void ladybug_state::redclash_update_stars_state() * 7 right/up fast (+5/2 pix per frame) */ -void ladybug_state::redclash_set_stars_speed(UINT8 speed ) +void redclash_state::redclash_set_stars_speed(UINT8 speed ) { m_stars_speed = speed; } @@ -338,7 +378,7 @@ void ladybug_state::redclash_set_stars_speed(UINT8 speed ) /* Space Raider doesn't use the Va bit, and it is also set up to */ /* window the stars to a certain x range */ -void ladybug_state::redclash_draw_stars(bitmap_ind16 &bitmap, const rectangle &cliprect, UINT8 palette_offset, UINT8 sraider, UINT8 firstx, UINT8 lastx ) +void redclash_state::redclash_draw_stars(bitmap_ind16 &bitmap, const rectangle &cliprect, UINT8 palette_offset, UINT8 sraider, UINT8 firstx, UINT8 lastx ) { int i; UINT8 tempbit, feedback, star_color, xloc, yloc; @@ -395,14 +435,14 @@ void ladybug_state::redclash_draw_stars(bitmap_ind16 &bitmap, const rectangle &c } } -void ladybug_state::screen_eof_redclash(screen_device &screen, bool state) +void redclash_state::screen_eof_redclash(screen_device &screen, bool state) { // falling edge if (!state) redclash_update_stars_state(); } -UINT32 ladybug_state::screen_update_redclash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +UINT32 redclash_state::screen_update_redclash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { bitmap.fill(m_palette->black_pen(), cliprect); redclash_draw_stars(bitmap, cliprect, 0x60, 0, 0x00, 0xff); @@ -411,3 +451,106 @@ UINT32 ladybug_state::screen_update_redclash(screen_device &screen, bitmap_ind16 m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } + +WRITE8_MEMBER(redclash_state::sraider_io_w) +{ + // bit7 = flip + // bit6 = grid red + // bit5 = grid green + // bit4 = grid blue + // bit3 = enable stars + // bit210 = stars speed/dir + + if (flip_screen() != (data & 0x80)) + { + flip_screen_set(data & 0x80); + machine().tilemap().mark_all_dirty(); + } + + m_grid_color = data & 0x70; + + redclash_set_stars_enable((data & 0x08) >> 3); + + /* + * There must be a subtle clocking difference between + * Space Raider and the other games using this star generator, + * hence the -1 here + */ + + redclash_set_stars_speed((data & 0x07) - 1); +} + +VIDEO_START_MEMBER(redclash_state,sraider) +{ + m_grid_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(redclash_state::get_grid_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + m_grid_tilemap->set_scroll_rows(32); + m_grid_tilemap->set_transparent_pen(0); + + m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(redclash_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + m_bg_tilemap->set_scroll_rows(32); + m_bg_tilemap->set_transparent_pen(0); +} + +void redclash_state::screen_eof_sraider(screen_device &screen, bool state)/* update starfield position */ +{ + // falling edge + if (!state) + redclash_update_stars_state(); +} + +UINT32 redclash_state::screen_update_sraider(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +{ + // this part is boilerplate from ladybug, not sure if hardware does this, + // since it's not used + + int offs; + int i; + + for (offs = 0; offs < 32; offs++) + { + int sx = offs % 4; + int sy = offs / 4; + + if (flip_screen()) + m_bg_tilemap->set_scrollx(offs, -m_videoram[32 * sx + sy]); + else + m_bg_tilemap->set_scrollx(offs, m_videoram[32 * sx + sy]); + } + + // clear the bg bitmap + bitmap.fill(0, cliprect); + + // draw the stars + if (flip_screen()) + redclash_draw_stars(bitmap, cliprect, 0x60, 1, 0x27, 0xff); + else + redclash_draw_stars(bitmap, cliprect, 0x60, 1, 0x00, 0xd8); + + // draw the gridlines + m_palette->set_indirect_color(0x40, rgb_t(m_grid_color & 0x40 ? 0xff : 0, + m_grid_color & 0x20 ? 0xff : 0, + m_grid_color & 0x10 ? 0xff : 0)); + m_grid_tilemap->draw(screen, bitmap, cliprect, 0, flip_screen()); + + for (i = 0; i < 0x100; i++) + { + if (m_grid_data[i] != 0) + { + UINT8 x = i; + int height = cliprect.max_y - cliprect.min_y + 1; + + if (flip_screen()) + x = ~x; + + bitmap.plot_box(x, cliprect.min_y, 1, height, 0x81); + } + } + + // now the chars + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, flip_screen()); + + // now the sprites + draw_sprites(bitmap, cliprect); + + return 0; +} diff --git a/src/mame/video/timex.cpp b/src/mame/video/timex.cpp index 145b6e2131d..8130cd559ba 100644 --- a/src/mame/video/timex.cpp +++ b/src/mame/video/timex.cpp @@ -17,6 +17,7 @@ #include "emu.h" #include "includes/spectrum.h" +#include "includes/timex.h" #include "machine/ram.h" inline void spectrum_state::spectrum_plot_pixel(bitmap_ind16 &bitmap, int x, int y, UINT32 color)